我正在尝试使用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个插槽,我该如何解决这个问题呢?
答案 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()