我有这个 Pandas 系列:
ts = pd.Series([1, 2, 3, 4, 5, 6, 7, 8])
我想要得到的是一个数据框,其中包含另一列,其中包含第 0、2、4、6 行和第 1、3、5 和 7 行的总和(这意味着,在创建总和时遗漏了一行).
在这种情况下,这意味着新的数据框应该如下所示:
index ts sum
0 1 16
1 2 20
2 3 16
3 4 20
4 5 16
5 6 20
6 7 16
7 8 20
我该怎么做?
最佳答案
对每第 k 行使用 k
取模:
k = 2
df = ts.to_frame('ts')
df['sum'] = df.groupby(ts.index % k).transform('sum')
#if not default RangeIndex
#df['sum'] = df.groupby(np.arange(len(ts)) % k).transform('sum')
print (df)
ts sum
0 1 16
1 2 20
2 3 16
3 4 20
4 5 16
5 6 20
6 7 16
7 8 20
关于python - 如何获得包含偶数/奇数/第 k 行总和的新列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65357243/