gpt4 book ai didi

python - 如何按总和结果将分组分配给 Pandas 中的新列

转载 作者:行者123 更新时间:2023-12-03 19:41:52 26 4
gpt4 key购买 nike

使用样本数据:

Calendar    SKU   Quantity
2017-10-01 1001 10
2017-10-01 1002 20
2017-10-01 1003 30
2017-11-01 1001 40
2017-11-01 1002 50
2017-11-01 1003 60
2018-11-01 1001 70
2018-11-01 1002 80
2018-03-01 1001 90
我想为 2017 年和 2018 年的数量总和创建两列,而不更改当前的数据结构,如下所示:
预期结果 :
 Calendar    SKU    Quantity  Year_2017_Quantity   Year_2018_Quantity
2017-10-01 1001 10 50 160
2017-10-01 1002 20 70 80
2017-10-01 1003 30 90 0
2017-11-01 1001 40 50 160
2017-11-01 1002 50 70 80
2017-11-01 1003 60 90 0
2018-11-01 1001 70 50 160
2018-11-01 1002 80 70 80
2018-03-01 1001 90 50 160
Year_2017_Quantity 和 Year_2018_Quantity 列都是按 SKU 和相应日历年分组的求和运算的结果。
谢谢你。

最佳答案

我们在这里做枢轴我正在使用 crosstab然后 merge

s=pd.crosstab(df.SKU,df.Calendar.dt.year,df.Quantity,aggfunc='sum').fillna(0).add_prefix('Year_Quantity_').reset_index()
df=df.merge(s,how='left')
Calendar SKU Quantity Year_Quantity_2017 Year_Quantity_2018
0 2017-10-01 1001 10 50.0 160.0
1 2017-10-01 1002 20 70.0 80.0
2 2017-10-01 1003 30 90.0 0.0
3 2017-11-01 1001 40 50.0 160.0
4 2017-11-01 1002 50 70.0 80.0
5 2017-11-01 1003 60 90.0 0.0
6 2018-11-01 1001 70 50.0 160.0
7 2018-11-01 1002 80 70.0 80.0
8 2018-03-01 1001 90 50.0 160.0

关于python - 如何按总和结果将分组分配给 Pandas 中的新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62906442/

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