gpt4 book ai didi

python - python/pandas 中的条件聚合

转载 作者:行者123 更新时间:2023-11-28 19:52:25 25 4
gpt4 key购买 nike

我有一个这样的数据框:

Amount  Month   Type
15 201801 Sale
34 201801 Purchase
4 201801 Sale
86 201801 Purchase
23 201802 Sale
55 201802 Purchase
29 201802 Sale
...

我想按月汇总它,以便得到:

  • 总销售额:总和(类型 == 销售额的金额)
  • 总销售额(运行中):总和(月份 <= 当前月份且类型 == 销售额的金额)
  • 总购买量:总和(类型 == 购买量)
  • 总购买(运行):总和(当月 <= 当前月份且类型 == 购买时的金额)

所以...像这样:

Month  TotalSales TotalSalesRun TotalPurch TotalPurchRun
201801 19 19 120 120
201802 52 71 55 175

我玩过一些东西,但我是 lambda 函数的新手,我想这就是我需要去的地方。

最佳答案

我正在使用 concat

s1=df.groupby(['Month','Type']).sum()
s2=s1.groupby(level=1).cumsum().add_prefix('running')
s=pd.concat([s1,s2],axis=1).unstack()
s.columns=s.columns.map('_'.join)

或者让我们使用pivot_table

s1=df.pivot_table(index='Month',columns='Type',values='Amount',aggfunc='sum')
Yourdf=pd.concat([s1,s1.cumsum().add_prefix('Rolling')],sort=False,axis=1)
Yourdf
Type Purchase Sale RollingPurchase RollingSale
Month
201801 120 19 120 19
201802 55 52 175 71

关于python - python/pandas 中的条件聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55774651/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com