【发布时间】:2019-01-17 06:43:11
【问题描述】:
我的条件很简单:
如果当月总和 // 100:
打印总和并重置总和索引
其他:
继续加油
这是我的数据:
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)
【问题讨论】:
-
@jezrael 已更新!
标签: python pandas dataframe cumsum