Pandas 在Python中,使用cumsum和groupby

Pandas 在Python中,使用cumsum和groupby,pandas,Pandas,我正在尝试执行一个cumsum(),每次组更改时都要将值初始化为0。 假设我有下面的数据帧,在groupby之后,我有col2(group)和expect col3(cumsum),同时使用函数 Value Group Cumsum a 1 0 a 1 1 a 1 2 b 2 0 b 2 1 b 2 2 b 2 3 c 3 0 c 3 1 d 4 0 这不管用 df['Cumsum'] = df['Grou

我正在尝试执行一个cumsum(),每次组更改时都要将值初始化为0。 假设我有下面的数据帧,在groupby之后,我有col2(group)和expect col3(cumsum),同时使用函数

Value   Group   Cumsum
a   1   0
a   1   1
a   1   2
b   2   0
b   2   1
b   2   2
b   2   3
c   3   0
c   3   1
d   4   0
这不管用

df['Cumsum'] = df['Group'].cumsum()
请告知。
谢谢

嗯,结果比我想象的要复杂得多,因为要把小组的钥匙拿回来。也许其他人会找到更短的

第一,进口

import pandas as pd
import itertools
现在是数据帧:

df = pd.DataFrame({
    'a': ['a', 'b', 'a', 'b'],
    'b': [0, 1, 2, 3]})
现在我们分别做了一个
groupby
-
cumsum
,一些itertools查找键的东西,并将两者结合起来:

>>> pd.DataFrame({
    'keys': list(itertools.chain.from_iterable([len(g) * [k] for k, g in df.b.groupby(df.a)])),
    'cumsum': df.b.groupby(df.a).cumsum()})

    cumsum  keys
0   0   a
1   1   a
2   2   b
3   4   b

为什么你希望
cumsum
能处理非数字类型?明白了。。谢谢:)