Добро пожаловать в переполнение стека.
Вы можете рассчитать среднее значение для всех наблюдений за те же эпохи, используя функцию groupby
, затем shift
(сдвиг на -1, так как вы хотите среднее значение текущая эпоха, которая будет применена к предыдущей эпохе).
Затем выполняется левое соединение с исходным кадром данных.
df_mean_shifted = df.groupby('epochseconds')['midPrice'].mean().shift(-1).rename('midPrice_1')
df.merge(df_mean_shifted, left_on='epochseconds', right_index=True)
Это даст вам то, что вы хотите, но вы должны решить, как заполнить записи за последнюю эпоху, которая будет нулевой (из-за shift
).
epochseconds midPrice midPrice_1
0 1570780800 2954.625 2954.890625
1 1570780800 2954.625 2954.890625
2 1570780800 2954.625 2954.890625
3 1570780800 2954.625 2954.890625
4 1570780800 2954.625 2954.890625
5 1570780800 2954.625 2954.890625
6 1570780800 2954.875 2954.890625
7 1570780800 2954.875 2954.890625
24 1570780801 2954.875
25 1570780801 2954.875
26 1570780801 2954.875
27 1570780801 2954.875
28 1570780801 2954.875
29 1570780801 2954.875
30 1570780801 2954.875
31 1570780801 2955.0