如何通过cumsum函数跳过pandas数据帧组中的一行

时间:2014-11-03 21:20:24

标签: python pandas dataframe

我正在尝试使用cumsum()来获得我想要的熊猫结果,但我被卡住了。

        score1  score2
team slot       
a   2   4   6
a   3   3   7
a   4   2   1
a   5   4   3
b   1   7   2
b   2   2   10
b   5   1   9

我的原始数据如上所示,我想按团队和广告位进行累积得分1和得分2组。我用了

df= df.groupby(by=['team','slot']).sum().groupby(level=[0]).cumsum()

上面的代码几乎是我想要的,但是每个团队下面都需要5个插槽,我该如何解决这个问题呢?

enter image description here

1 个答案:

答案 0 :(得分:1)

正如@Paul H所评论的,这是代码:

import io
import pandas as pd

text = """team slot  score1  score2
a   2   4   6
a   3   3   7
a   4   2   1
a   5   4   3
b   1   7   2
b   2   2   10
b   5   1   9
"""

df = pd.read_csv(io.BytesIO(text), delim_whitespace=True, index_col=[0, 1])
df2 = df.reindex(pd.MultiIndex.from_product([df.index.levels[0], range(1, 6)]))
df2.fillna(0).groupby(level=[0]).cumsum()