pandas官方文档
pandas中有两种基本的数据类型,Series和DataFrame,前者是一维的,后者是二维甚至多维的。
首先生成一个DataFrame对象,这里用到了numpy中的生成随机数函数random.randn()。行名和列名通过index和column来定义。
import numpy as np
import pandas as pd
dates=pd.date_range('20190101',period=6)
#这个函数是生成一个时间序列,可选参数有start,end,period,fraq等
df=pd.DataFrame(np.random.rand(6,4),index=dates,column=list('ABCD'))
#此处的list是个Iterator
获取行名、列名
df.index
#emmm这是个属性,不用加括号,啧啧啧
df.columns
显示数据的统计摘要
df.describe()
数据转置
df.T
数据按轴排序
data.sort_index(axis=0,ascending=False)
#axis=0是行,1是列,True是升序,False是降序
获取数据
获取列
按照列名获取
pd['A']#
pd[['A','B']]
获取行
有两种方式,按照行的索引名称或者数字,进行切片
pd[0:3]
pd['20190101':'20190105']
按照索引名称获取 loc()
pd.loc(:,:)#前面的是行,后面的是列,列可以不写
pd.loc('20190101':'20190105','A':'B')
如果想按顺序选取,可以这样,也可以按照下一个方法
dates=pd.index
pd.loc[dates[0]:dates[1]]
按照位置选取iloc()
df.iloc[0:1,0:5]
布尔索引
选取符合条件的数据
df['A']>0 #返回的是bool列表
2019-01-01 True
2019-01-02 True
2019-01-03 True
2019-01-04 True
2019-01-05 True
2019-01-06 True
Freq: D, Name: A, dtype: bool
df[df['A']>0
A B C D
2019-01-02 -0.604116 -1.745064 -0.417829 0.834972
2019-01-03 -1.075509 -2.302135 -0.156421 -1.291591
2019-01-06 -1.390509 -1.313781 0.008195 0.617441