gpt4 book ai didi

python - 按日期对个人的所有金额求和

转载 作者:行者123 更新时间:2023-11-30 21:57:56 24 4
gpt4 key购买 nike

我有这个数据框

df:
payout person1 person2 date
1 300.0 LA NaN 2012-02-01
2 500.0 DO NaN 2012-02-01
3 600.0 DO NaN 2012-02-01
4 300.0 DO NaN 2012-01-01
5 500.0 DO NaN 2012-01-01
6 1000.0 DO AL 2012-01-01
7 800.0 DO AL 2012-01-01

在一个单独的数据框中,我需要分别对每个人1在每个不同月份和年份的所有支出进行汇总。然后,如果 person2 存在,我需要在 person1 和 person2 之间分配支出(每月求和后)。
输出应该是这样的:

df:
person date sum
1 LA 2012-02-01 300.0
2 DO 2012-02-01 1100.0
3 DO 2012-01-01 1700.0
4 AL 2012-01-01 900.0

最佳答案

可能不那么优雅,但适用于这种情况:

m1=(df[df.person2.isna()].groupby([df.date.dt.date,'person1'])
.payout.sum().reset_index().rename(columns={'person1':'person'}))

m2=df.dropna().groupby([df.date.dt.date,'person1','person2']).payout.mean().reset_index()

df_new=(m1.merge(m2.melt(['date','payout'],value_name='person').
drop('variable',1),how='outer').groupby(['date','person'],as_index=False).sum())

print(df_new)

date person payout
0 2012-01-01 AL 900.0
1 2012-01-01 DA 1700.0
2 2012-02-01 DA 1100.0
3 2012-02-01 LA 300.0

关于python - 按日期对个人的所有金额求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55108423/

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