今天继续介绍几个常用的Pandas操作。
1 | import numpy as np |
1.DataFrame的apply方法
1 | df[['psavert','uempmed']].apply(lambda x:x.max()-x.min(), axis=1)#axis=1 将函数应用到列 |
1 | df.applymap(lambda x:x*10)#applymap 将函数应用到每个元素 |
2.DataFrame的分组
1 | df.groupby('unemploy')['psavert'].median()#样例:df.groupby(分组依据)[数据来源].使用操作 |
1 | condition = df.unemploy > df.unemploy.mean()#使用condition定义分组依据 |
1 | df.groupby([condition, df['unemploy']])['psavert'].mean()#True组和False两组分别细分 |
1 | df.groupby([df['unemploy'], df['uempmed']])['psavert'].mean()#两级分组 |
1 | gb = df.groupby(['unemploy'])#Groupby对象 |
1 | gb.size()#每组的元素个数 |
1 | gb.agg(['skew', 'sum', 'idxmax'])#agg聚合函数,查看每个分组的三个统计量 |
1 | gb.agg(lambda x: x.mean()-x.min())#在agg中自定义函数 |
1 | gb.filter(lambda x: x.shape[0] > 100)#组过滤 |
1 | gb.apply(lambda x: x**2)#组的apply方法 |
3.DataFrame的连接
1 | df1 = df[0:10] |
1 | pd.concat([df1, df2], axis=0)#concat是方向性连接,axis=0表示纵向连接 |
1 | def choose_min(x1, x2): |
下一期是Pandas的常见数据处理,包括缺失数据、文本数据、分类数据和时序数据。