Панды заполняют пробелы в дате и перезаписывают с помощью функции
У меня есть большой фрейм данных с 2 группами: счет и день. Есть ли простая возможность с инструментами панд заполнить пробелы и пропущенные оценки со средним (альтернативные ewma и т. Д.) Значений до.
Сначала я группирую, перезаписываю баллы, группирую, а затем складываю измененные сгруппированные df вместе.
dfg = df.groupby(['g1','g2'])
for name , group in dfg:
print group
break
ix g1 g2 score day
4 19 24 4.150513 2014-02-12
5 19 24 6.986235 2014-02-13
6 19 24 9.634231 2014-02-14
7 19 24 1.818548 2014-02-15
8 19 24 1.699897 2014-03-02
9 19 24 2.128781 2014-03-25
10 19 24 1.720297 2014-03-26
14 19 24 2.079877 2014-03-30
1 ответ
Я никогда не делал этого, но просмотр руководства дал мне следующую идею в качестве отправной точки:
df = pd.DataFrame([['2011-01-01', '1'], ['2011-01-03', '2']], columns=['day', 'score']).set_index('day')
df.index = df.index.to_datetime()
rng = pd.date_range('1/1/2011', periods=12, freq='d')
df2 = pd.DataFrame(pd.DataFrame(columns=['day'], index=rng))
# now, for those that we actually have data, put it in:
df2['score'] = df['score']
Окончательный результат тогда:
score
2011-01-01 1
2011-01-02 NaN
2011-01-03 2
2011-01-04 NaN
2011-01-05 NaN
2011-01-06 NaN
2011-01-07 NaN
2011-01-08 NaN
2011-01-09 NaN
2011-01-10 NaN
2011-01-11 NaN
2011-01-12 NaN
Теперь вы можете применять методы интерполяции к NaN
значения, как описано в документах.