为了账号安全,请及时绑定邮箱和手机立即绑定

Pandas groupby 自定义聚合计算

Pandas groupby 自定义聚合计算

翻过高山走不出你 2023-10-18 16:36:44
我有以下country wise orders data过去两周的数据框。我想计算与上周相比按国家/地区、开始日期和结束日期分组的食品订单的百分比变化(增加或减少) 。Formula = (this_week_orders*100)/(last_week_orders) - 100对于上面的 df,我想得到最终的数据框如下正如我们所看到的,Russia had a decrease in order count of 33%与India had an increase of 50%上周相比请建议如何编写自定义聚合函数,因为我只熟悉标准函数,如 sum() 、 count() 等......
查看完整描述

1 回答

?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

df = pd.DataFrame({'start_date':['2020-09-21','2020-09-21','2020-09-28', '2020-09-28'], 

                   'end_date':['2020-09-27', '2020-09-27', '2020-10-04', '2020-10-04'],

                  'Country':['Russia', 'India','Russia','India'], 

                   'orders':[150,80,100,120]})

df['start_date'] = pd.to_datetime(df['start_date'])


df.sort_values(by='start_date', inplace=True)


df['% Change'] = df.groupby('Country')['orders'].pct_change()

输出


    start_date    end_date  Country orders  % Change

0   2020-09-21  2020-09-27  Russia  150          NaN

1   2020-09-21  2020-09-27  India   80           NaN

2   2020-09-28  2020-10-04  Russia  100    -0.333333

3   2020-09-28  2020-10-04  India   120     0.500000


查看完整回答
反对 回复 2023-10-18
  • 1 回答
  • 0 关注
  • 83 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信