import pandas as pd
import numpy as np
#pandas中axis=0表示index行,axis=1表示columns列
s=pd.Series([1,3,6,np.nan,44,1])
print(s)
dates=pd.date_range('20180719',periods=6)
print('2.',dates)
df=pd.DataFrame(np.random.randn(6,4),index=dates,columns=['a','b','c','d'])#利用pandas构建数据框架
print('3.',df)
print('4.',df.index)#索引,行名称
print('5.',df.columns)#列名称
print('6.',df.values)#列表所有值
print('7.',df.describe())#列表值的描述(均值,方差等)
print('8.',df.T)#转置
print('9.',df.sort_index(axis=1,ascending=False))#按列倒序,,默认按行顺序排列,ascending:上升的
print('10.',df.sort_values(by='c'))#
print('11.',df['a'],df.a)#取a列
print('12.',df[0:3])#取0,1,2共三行
print('13.',df.loc['2018-07-19'])#以标签的名称取值
print('14.',df.loc[:,['a','b']])#取a,b列数据
print('15.',df.iloc[3,1])#以行列位置取值,取第4行第2列的数值
print(df.iloc[2:3,2])
print('16.',df.ix[:3,['a','c']])#可以以名称、行列号混合取值
print('17.',df[df.a>0.1])#筛选
df.iloc[0,1]=np.nan
df.iloc[2,3]=np.nan
print(df)
print(df.dropna(axis=0,how='any'))#how='all',按行丢掉na值,any:一行中有任一个NA值,都将整行丢掉,all:整行都是NA值才将此行丢掉。
print(df.fillna(value=0))#将NA值填入0
print(np.any(df.isnull())==True)
import pandas as pd
import numpy as np
#合并数据框两种方法:pd.concat(join='outer')=append
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'])
df3=pd.DataFrame(np.ones((3,4))*2,columns=['a','b','c','d'])
print(df1)
print(df2)
print(df3)
res=pd.concat([df1,df2,df3],axis=0,ignore_index=True)#上下合并。沿着index行方向环绕数据框,ignore_index,忽略指引
print(res)
#合并数据框join
df3=pd.DataFrame(np.ones((3,4))*0,columns=['a','b','c','d'],index=[1,2,3])
df4=pd.DataFrame(np.ones((3,4))*1,columns=['b','c','d','e'],index=[2,3,4])
print(df3)
print(df4)
res1=pd.concat([df3,df4],join='outer')#join:如何处理其他轴上的索引,outer表示都保留,inner表示只留共有的
print(res1)
res2=pd.concat([df3,df4],join='inner',ignore_index='True')
print(res2)
res3=df3.append(df4,ignore_index='True')
print(res3)
pd.merge_ordered()
网友评论