pandas入门(笔记)

it2022-05-05  139

#coding:utf-8 import pandas as pd #series创建 ##直接创建,默认索引 a=pd.Series([1,2,3]) print a ##通过一组数据创建,指定索引 data1=[4,3,7] b=pd.Series(data1,index=['one','two','three']) print b ##通过字典创建,字典key即为索引 data2={'2001':56,'2002':73,'2003':78} c=pd.Series(data2) print c ##通过字典创建,指定索引,key与索引自动匹配,匹配不到则空值 year=['2001','2002','2003','2004'] d=pd.Series(data2,index=year) print d #Series查看 ##查看所有元素 print c.values ##查看索引 print c.index ##查看列 print c['2002'] ##查看缺失值(布尔值、函数) print 56 in c.values print pd.isnull(d) ##查看唯一值 ###索引唯一 print c.index.is_unique ###值唯一 print c.is_unique print c.unique() ###值频次 print c.value_counts() #Series修改 ##增加元素,连接其他series a1=pd.Series([1,2,3]) a2=pd.Series([4,3,2]) a3=a1.append(a2) print a3 ##删除元素 a4=a3.drop(2) print a4 ##修改元素值 a4[1]=([5,4]) print a4 ##修改索引 d1=d.reindex(['2001','2002','2003','2004','2005']) print d1 ##修改对象及索引名称 d.name='num' d.index.name='year' print d #运算 ##Series间(按照索引自动对齐) print c+d ##Series与标量 print d+2 #排序 ##值排序(缺失值默认排到末尾) print b.sort_values() ##索引排序 print b.sort_index() #排名 print b.rank() #dataframe创建 ##通过包含列表的字典 data3={'id':[1,2,3], 'year':['2001','2002','2003'], 'name':['a','b','c'] } df1=pd.DataFrame(data3) df11=pd.DataFrame(data3,columns=['name','id','year'],index=['11','22','33']) print df1 print df11 ##通过包含Series的字典 data4={'id':pd.Series([1,2,3]), 'year':pd.Series(['2001','2002','2003']), 'name':pd.Series(['a','b','c']) } df2=pd.DataFrame(data4) print df2 ##通过嵌套字典 data5={'id':{'a':1,'b':2,'c':3}, 'year':{'a':'2001','b':'2002','c':'2003'} } df3=pd.DataFrame(data5) print df3 #dataframe查看 ##查看所有行列 print df3.values ##查看行数和列数 print df3.shape[0] print df3.shape[1] ##查看行 print 'a' in df3.index print df3[:3] print df3.ix['a'] ##查看列 print 'id' in df3.columns print df3[['year','id']] ##查看特定行和特定列(loc标签索引,iloc位置索引) print df3.loc[['a','b'],'year'] print df3.loc[df3['id']>1,['year','id']] print df3.iloc[0,1] print df3.iloc[0:1,0:1] print df3.iloc[[0,1],[0,1]] ##查看缺失值 print df3.isnull() ##查看唯一值 print df3['age'].is_unique #dataframe修改 ##增加行(loc,at,append) ###loc df3.loc[4]=([4,'2005']) df3.loc['d']=([4,'2005']) ###at df3.at['e']=([5,'2005']) print df3 ###append df3a=pd.DataFrame({'id':[5,6], 'year':['2005','2006'], },index=['f','g']) print df3a df3b=df3.append(df3a,ignore_index=False) print df3b ##增加列(直接加,insert) df3['age']=12 df3['salary']=[12,34,45,23,12] df3.insert(1,'color',['red','blue','black','red','blue','black']) print df3 ##删除行(drop) df3.drop([3],axis=0,inplace=True) print df3 ##删除列(drop,del) df3.drop(['color'],axis=1,inplace=True) del df3['year'] mydel=df3.pop('id') print mydel print df3 ##删除重复项 print df3.drop_duplicates(subset=['color1'],keep='first',inplace=False) ##删除缺失值 print df3.dropna()#thresh参数n表示,在任一行/列,非空数据至少有n个 print df3.dropna(axis=1) ##修改 ###修改形式 df11=df1.T print df11 ###修改值 ####按行修改 df3.ix['c']=[4.5,'red',1] print df3 ####按列修改 df3['age']=5 print df3 ####特定位置修改(loc,iloc) df3.loc['e','age']=15 print df3 df3.loc[[3,'e'],'age']=8 print df3 df3.iloc[[1,4],2]=18 print df3 df3.iloc[[1,4],[0,2]]=18 print df3 ####填补缺失值 print df3.fillna(0) ###修改索引 ####索引重排 print df6.sort_index(axis=1) ####建新索引(新索引与现有索引匹配,新索引有现索引无为NaN,反之则值被丢弃) print df3.reindex(['a','b','c','d','e','f'],fill_value=0) print df3.reindex(index=['a','b','c','d','e','h'],columns=['id','color1']).ffill() print df3.set_index('id',inplace=True) print df3.reset_index(inplace=True) ####层次化索引 (暂无) ###修改列名称 ####修改列名称顺序 df3.columns=['id1','color1','age1'] ####修改所有列名称 print df4.reindex(columns=df5.columns,fill_value=0) ####修改特定列名称 df3.rename(columns={'id1':'id','age1':'age'},inplace=True) #运算 ##算术运算 ###dataframe间(加减乘除) data6={'a':[1,2,3,4,5],'b':[4,3,32,4,1]} data7={'a':[9,2,3,2,5],'b':[4,3,32,4,1],'c':[4, 3, 32, 4, 1]} df4=pd.DataFrame(data6) df5=pd.DataFrame(data7) ####直接运算,匹配不到为NaN print df4+df5 ####匹配不到自动补0 (add,sub,div,mul) print df4.add(df5,fill_value=0) ###dataframe与series间 s2=pd.Series([2,3,5],index=['a','b','c']) print df4-s2 s3=pd.Series([2,3,5,1,1,],index=df4.index) print df4.sub(s3,axis=0) #axis表示被匹配的轴 ##集合运算 ###取交集 print df4.merge(df5,how='inner') ###取并集 print df4.merge(df5,how='outer') ###取差集 df6=df4.append(df5) print df6 print df6.drop_duplicates(subset=['a','b'],keep=False) ##函数运算 ###数组级函数 f=lambda x:x.max() print df6.apply(f) print df6.apply(f,axis=1) ###元素级函数 g=lambda y:y*(-2) print df6.applymap(g) #排序 ##索引排序 print df6.sort_index(axis=1) ##值排序 print df6.sort_index(by=['a','b']) #排名 print df6.rank(axis=1,method='first',ascending=False) #描述性统计(sum,mean,cumsum,idxmax,describe.corr,corrwith,cov) print df6.sum(axis=1,skipna=False) print df6.idxmax(axis=1,skipna=False) print df6['a'].corr(df6['b']) print df6.corrwith(df6['b']),co

 


最新回复(0)