【问题标题】:how to skip a row in pandas dataframe group by cumsum function如何通过 cumsum 函数跳过熊猫数据帧组中的一行
【发布时间】:2014-11-04 12:56:24
【问题描述】:

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

        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

我的原始数据如上所示,我想按团队和插槽对 score1 和 score2 分组进行累积。我用过

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

上面的这段代码几乎得到了我想要的,但是每个团队都需要 5 个插槽,就像下面的输出一样,我该如何解决这个问题?

【问题讨论】:

标签: python pandas dataframe


【解决方案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()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    • 2015-12-13
    • 2021-04-15
    相关资源
    最近更新 更多