计算列中两个不同数据点之间的平均值

Calculating the mean between two different data points in a column

你好,我在下面有这个数据集,有 5 年的数据。我只包括一个样本。

Date Europe
April 23 -0.3%
April 16 -0.7%
April 9 1%
April 2 2%
March 26 3%

我想求两个日期之间的平均值。例如,4 月 23 日至 3 月 26 日之间的平均值应为 1.35%。重要的是要注意它需要在两个日期之间而不是滚动平均值。

我试图在两个时期之间进行平均,类似于 y/y 变化计算,但它给了我一个错误。行之间的差异将是恒定的 52 行。所以我需要找到第 52 行和第 1 行之间的平均值。

Y/Y 更改计算

df=df.pct_change(periods = -52)
df=df.mean(periods=-52) #Error# 

在此先感谢您的帮助。

我们可以使用 shift 函数从前 periods 行获取值,然后将前一个值与当前值进行平均。

df = pd.DataFrame({
    'value':[1,2,3,4,5,6,7,8,9,10]
})
df['lag_3_value'] = df['value'].shift(periods = 3)
df['avg_between_current_and_lag_3'] = (df['value'] + df['lag_3_value']) / 2

输出:

value lag_3_value avg_between_current_and_lag_3
1 nan nan
2 nan nan
3 nan nan
4 1 2.5
5 2 3.5
6 3 4.5
7 4 5.5
8 5 6.5
9 6 7.5
10 7 8.5

可能不是最短的线路, 但它正在工作:

np.mean(df.loc[df['date'].isin(['date_one','date_two'])].value.to_numpy())

其中 'value' 是 'europe'

的列名

如果 isin() 函数中有任意数量的日期,它也可以工作。