pandas模块简单学习

此博客记录观看莫烦python视频的笔记,涉及Python中Pandas库的数据处理操作,包括数据取值、赋值、处理无效数据、导入导出数据,还介绍了DataFrame合并及可视化数据等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

努力的学习,努力的记笔记。以下笔记是观看b站莫烦python视频。
该up主是我很喜欢的一位网上老师,所以安利一下大家
该up主有个人博客网站:morvanzhou.github.io

数据的取值

dates = pd.date_range('20130102',periods=6)
df = pd.DataFrame(np.arrange(24).reshpe((6,4)),index=dates,columns=['A','B','C','D'])
#去除特定列
print(df['A'])
print(df.A)
#取出特定的行
print(df[0:3])
print(df['20130102':'20130104'])
#loc用法(用标签)
print(df.loc['20130102'])
print(df.loc[:,['A','B']])
print(df.loc['20130102',['A','B']])
#iloc用法(用行号或列号)
print(df.iloc[3:5,1:3])
print(df.iloc[[1,3,5],1:3])
#ix用法,混合标签和序号(似乎弃用了,在新版本)
print(df.ix[:3,['A','C']])
#Boolean indexing
print(df[df.A<8])

数据的赋值

import pandas as pd
import numpy as np
dates = pd.date_range('20130102',periods=6)
df = pd.DataFrame(np.arrange(24).reshpe((6,4)),index=dates,columns=['A','B','C','D'])
#取值在赋值就行了
df.iloc[2,2] = 1111
df.loc['20130102','A']=222
df[df.A>4] = 0
df.A[df.A>4] = 0
df['F'] = np.nan

处理无效数据

import pandas as pd
import numpy as np
dates = pd.date_range('20130102',periods=6)
df = pd.DataFrame(np.arrange(24).reshpe((6,4)),index=dates,columns=['A','B','C','D'])
df.iloc[0,1] = np.nan
df.iloc[1,2] = np.nan
#只要有一个nan就丢掉
print(df.dropna(axis=0,how='any'))
#全部为nan就丢掉
print(df.dropna(axis=0,how='all'))
#把nan值改成为0
print(df.fillna(value = 0))
#判断是否有缺失的值
print(df.isnull())
#在表格很大的情况下判断是否有缺失的值
print(np.any(df.isnull())==True)

导入、导出数据

有以下等很多种格式

导入导出
read_csvto_csv
read_excelto_excel
read_hdfto_hdf
read_sqlto_sql
read_jsonto_json
read_msgpackto_msgpack
read_htmlto_html
read_gbqto_gbq
import pandas as pd
#csv是excel的文件格式
data = pd.read_csv('student.csv')
print(data)
data.to_pickle('student.pickle')

DataFrame的合并

import pandas as pd
import numpy as np
#concatenating
df1 = pd.DataFrame(np.ones((3,4))*0,columns=['a','b','c','d'])
df2 = pd.DataFrame(np.ones((3,4))*1,columns=['a','b','c','d'])
df2 = pd.DataFrame(np.ones((3,4))*2,columns=['a','b','c','d'])
#再第一维上合并,就是横向合并
res = pd.concat([df1,df2,df3],axis = 0)
#在以上的基础上忽略掉行标签进行从新排序
pd.concat([df1,df2,df3],axis = 0,ignore_index = True)
#join,['inner','outer'],类似数据库的外连接和内连接,但有点不一样
df4 = pd.DataFrame(np.ones((3,4))*1,columns=['a','b','c','d'])
df5 = pd.DataFrame(np.ones((3,4))*2,columns=['b','c','d','e'])
res2 = pd.concat([df4,df5],join='inner',ignore_index=True)
print(res2)
#join_axs
res3 = pd.concat([df4,df5],axis =1,join_axs=[df4.index])
print(res3)

#append
res4 = df1.append([df2,df3],ignore_index = True)
print(res4)
s1 = pd.Seris([1,2,3,4],index['a','b','c','d'])
res5 =df1.append(s1,ignore_index =True)
print(res5)

merge来合并数据

import pandas as pd
import numpy as np
left = pd.DataFrame({
    'key':['K0','K1','K2'],
    'A':['A0','A1','A2'],
    'B':['B0','B1','B2']
})
right = pd.DataFrame({
    'key':['K0','K1','K2'],
    'C':['C0','C1','C2'],
    'D':['D0','D1','D2']
})
print(left)
print(right)
#按照key来合并
res = pd.merge(left,right,on='key')
print(res)

可视化数据

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
#Series
"""
data = pd.Series(np.random.randn(1000),index = np.arange(1000))
data = data.cumsum()
data.plot()
plt.show()
"""
#DataFrame
data = pd.DataFrame(np.random.randn(1000,4),index=np.arange(1000),columns=list("ABCD"))
data = data.cumsum()
data.plot()
plt.show()
#plot methods:
#'bar','hist','box','kde','area','scatter','hexbin','pie'
"""
ax =data.plot.scatter(x='A',y='B',color = 'DarkBlue',label='Class 1')
data.plot.scatter(x='A',y='C',color = 'DarkGreen',label='Class x',ax=ax)
plt.show()
"""
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值