首页 > 解决方案 > Python Pandas-根据给定窗口计算某列的总和并从某个值开始

问题描述

我正在尝试在 Python Pandas 数据框中创建一个新列,该列包含来自指定范围内另一列并从某一行开始的总和值。例如,在下面的数据框中,我想要 Trace 1 从第 3 行开始的 Value 列的总和(使用索引行号)。但是,我还需要对 Trace 2 重复相同的条件。此外,我需要从每个 Trace 的相同样本编号开始。有任何想法吗?

在此处输入图像描述

标签: pythonpandas

解决方案


国际大学联合会,

groupby+ rolling+sum

df = pd.DataFrame({'trace': [1]*5 + [2]*5, 'sample': list(range(1,6))*2,
                  'value': [0.25, 0.63, 0.98, 0.48, 0.52,0.79, 0.63, 0.11, 0.29, 0.81]})
df.groupby('trace').value.rolling(4).sum()

1      0     NaN
       1     NaN
       2     NaN
       3    2.34
       4    2.61
2      5     NaN
       6     NaN
       7     NaN
       8    1.82
       9    1.84

推荐阅读