Pandas:计算一列每两行的平均值并将其放入新列中

Adr*_*ian 4 python average dataframe pandas

我想对一列求平均值,但我希望将平均值放入带有 pandas 的新列中。

我想从这种格式开始:

values
10
5
8
7
2
5
6
7
Run Code Online (Sandbox Code Playgroud)

对于这种格式:

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
Run Code Online (Sandbox Code Playgroud)

这里有一个类似的解决方案:在 pandas dataframe 中平均每两个连续索引值(每 2 分钟),但我想保持相同的行数。

mrz*_*rzo 5

您可以使用 pd.Series.rolling (https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.rolling.html):

data = pd.Series([10, 5, 8, 7, 2, 5, 6, 7])
print(data.rolling(2).mean())
Run Code Online (Sandbox Code Playgroud)

输出:

0    NaN
1    7.5
2    6.5
3    7.5
4    4.5
5    3.5
6    5.5
7    6.5
dtype: float64
Run Code Online (Sandbox Code Playgroud)

  • OP 希望滚动平均值作为现有数据框中的新列 (2认同)