groupby:
import pandas as pd
import numpy as np
#制作数据源
company=["A","B","C"]
data=pd.DataFrame({
"company":[company[x] for x in np.random.randint(0,len(company),10)],
"salary":np.random.randint(5,50,10),
"age":np.random.randint(15,50,10)
}
)
#三个用法之一:agg用法
x1 = data.groupby("company").agg("mean")
data.groupby('company').agg({'salary':'median','age':'mean'})
#三个用法之二:transform用法
#拼接均值方法一
avg_salary_dict = data.groupby('company')['salary'].mean().to_dict()
data['avg_salary'] = data['company'].map(avg_salary_dict)
#拼接均值方法二
data['avg_salary1'] = data.groupby('company')['salary'].transform('mean')
#三个用法之三:apply用法:自定义函数
def get_oldest_staff(x):
df = x.sort_values(by = 'age',ascending=True)
return df.iloc[-1,:]
x2=data.groupby('company',as_index=False).apply(get_oldest_staff)
pivot
#功能:透视表
#pivot_table有四个最重要的参数index、values、columns、aggfunc,
#本文以这四个参数为中心讲解pivot操作是如何进行。
#参数
#index是要分组的变量
#values是要计算的列
#aggfunc可以指定聚合的函数,可以传递函数
import pandas as pd
import numpy as np
df.pivot_table(index=['月份'],values=['案件金额'],aggfunc=[np.max,np.sum,lambda x:len(x.unique()),len]).reset_index()