python - 如何获得包含偶数/奇数/第 k 行总和的新列?

标签 python pandas

我有这个 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/

相关文章:

python - 如何使用 Python 将 Pandas DataFrame 导出到 Google 表格?

python - groupby 后找不到 Grouper 名称 `datetime`

python - 如何用pandas中的条件替换两列?

Python3变量自增和赋值

python - 与绘图一起使用的位置模式列表

python - 如何在 pyspark 中将具有空值的数据帧写入 CSV

python - 为 Pandas 数据框中的每个日期时间添加多行

python - 如何在一行中的至少一个元素中选择包含特定值的行?

python - sparql 查询 sparql.query().convert() 有时在 Virtuoso SPARQL 查询编辑器上给出输出时抛出异常

python - 在 Tensorflow 中读取特征和标签位于同一行的 CSV 文件