熊猫:计算每两列的平均值,然后将其放入新列中

时间:2019-04-11 13:37:36

标签: python pandas dataframe average

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

我想使用这种格式:

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

这里有一个类似的解决方案:Averaging every two consecutive index values(every 2min) in pandas dataframe,但是我想保持相同的行数。

2 个答案:

答案 0 :(得分:3)

您可以为此使用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())

输出:

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

答案 1 :(得分: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