Pandas的一些常用操作_2

今天继续介绍几个常用的Pandas操作。

1
2
3
import numpy as np
import pandas as pd
df = pd.read_csv('./economics.csv')

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
2
condition = df.unemploy > df.unemploy.mean()#使用condition定义分组依据
df.groupby(condition)['psavert'].mean()#分为True和False两组
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
2
gb.size()#每组的元素个数
#和DataFrame一样,Groupby对象也有max\idxmin\all\\nunique\quantile\prod等函数,这里不一一列举。
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
2
3
df1 = df[0:10]
df2 = df[10:20]
df1.merge(df2, on='date', how='outer')#merge表示关系型连接,包括左连接、右连接、内连接和外(全)连接
1
pd.concat([df1, df2], axis=0)#concat是方向性连接,axis=0表示纵向连接
1
2
3
4
def choose_min(x1, x2):
min = x1.where(x1<x2, x1)
return min
df1.combine(df2, choose_min)#使用combine函数自定义连接规则

下一期是Pandas的常见数据处理,包括缺失数据、文本数据、分类数据和时序数据。

欢迎关注我们的公众号
0%