计算列中两个不同数据点之间的平均值
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() 函数中有任意数量的日期,它也可以工作。
你好,我在下面有这个数据集,有 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() 函数中有任意数量的日期,它也可以工作。