У меня остаются значения NaN при выполнении операций прокатки. Я хочу исправить это, применяя достаточно короткое скользящее среднее, чтобы соответствовать определенному ряду. Вот пример данных:
#get the rolling mean from last 7 days
df = pd.DataFrame(np.random.randint(10, size=10), columns=['values'])
df['rolling7'] = df['values'].rolling(7).mean().round(1)
df.head(10)
values rolling7
0 7 NaN
1 6 NaN
2 3 NaN
3 4 NaN
4 0 NaN
5 9 NaN
6 0 4.1
7 1 3.3
8 3 2.9
9 9 3.7
Я хочу заполнить NaN примерно более короткими средствами прокатки:
прокатка (1) для ряда 0, прокатка (2) для ряда 1 и т. Д.
Я понимаю, почему мой код не работает, но я не знаю, как исправить это приращение:
m = 0
for row in df.loc[0:6]:
m = ++1
df['rolling7'] = df['values'].rolling(m).mean().round(1)
df.head(10)
values rolling7
0 7 7.0
1 6 6.0
2 3 3.0
3 4 4.0
4 0 0.0
5 9 9.0
6 0 0.0
7 1 1.0
8 3 3.0
9 9 9.0
# and I don't know why it went through entire df even if I specified the rows