Pandas 在Python中,使用cumsum和groupby
我正在尝试执行一个cumsum(),每次组更改时都要将值初始化为0。 假设我有下面的数据帧,在groupby之后,我有col2(group)和expect col3(cumsum),同时使用函数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
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
能处理非数字类型?明白了。。谢谢:)