Pandas:计算某一列每2行的平均值,并将其放入新列中。

4

我想对一列数据取平均值,但我希望用pandas将平均数放入一个新的列中。

我想要将数据从这种格式转换为:

values
10
5
8
7
2
5
6
7

转换成此格式:
values  average
10  nan
5   7.5
8   6.5
7   7.5
2   4.5
5   3.5
6   5.5
7   6.5

这里有一个相似的解决方案:在pandas数据框中每两个相邻索引值(每2分钟)求平均值,但我想保留相同数量的行。

5
查阅 pandas.rolling - Paul H
2个回答

5

2
OP希望在现有数据框中添加滚动平均作为新列。 - Paul H

2
在另一种解决方案中,值正在替换所讨论的列。我想将它们放入一个新列中。同时,我通过Paul H的帮助想出了一个解决方案:最初的回答。
df = pd.DataFrame({'values': [10, 5, 8, 7, 2, 5, 6, 7]})
df["average"] = df["values"].rolling(2).mean()
print(df)

输出:

   values  average
0      10      NaN
1       5      7.5
2       8      6.5
3       7      7.5
4       2      4.5
5       5      3.5
6       6      5.5
7       7      6.5

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接