gpt4 book ai didi

python - 用于 cumsum 的 Groupby 函数并重置其索引

转载 作者:行者123 更新时间:2023-12-01 01:17:05 32 4
gpt4 key购买 nike

我的条件很简单:

如果该月的总和//100:

print sum and reset cumsum index

其他:

keep cumsumming

这是我的数据:

data = dict(
Year=['2018', '2018', '2018', '2018', '2018', '2017', '2017', '2017'],
Month=['08', '08', '04', '05', '05', '06', '02', '01'],
Money=[26, 50, 25, 45, 20, 36, 84, 24]
)

这是我的尝试:

df = pd.DataFrame(data)
df = df.groupby(['Year', 'Month']).sum()
df['cum_y'] = df.groupby(['Year']).Money.cumsum()


df['cum_m'] = df.groupby([lambda x: x // 100], level=0).Money.cumsum()

df['cum_m'] = df.groupby(lambda x: [x if x // 100 else None]).Money.cumsum()

df['cum_m'] = df.groupby(['Money']).agg(lambda x: x // 100).cumsum()

我想要类似的东西:

            Money  cum_y  cum_m (Payout actually)
Year Month
2017 01 24 24 x (means None)
02 84 108 108 - reset cumsum counter()
06 36 144 x (36)
2018 04 25 25 x (61)
05 65 90 126 - reset cumsum counter()
08 76 166 x (76)

最佳答案

我知道应该尽可能避免迭代,但这里有一个使用迭代的解决方案:

total = 0
Cumsum = []
for item in df.Money:
total += item
if total < 100:
Cumsum.append(np.nan)
else:
Cumsum.append(total)
total = 0

df['Cumsum'] = Cumsum

输出:

               Money    Cumsum
Year Month
2017 01 24 NaN
02 84 108.0
06 36 NaN
2018 04 25 NaN
05 65 126.0
08 76 NaN

关于python - 用于 cumsum 的 Groupby 函数并重置其索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54230372/

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