python中groupby和pivot区别

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()

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值