У меня есть DataFrame вида
eqt_code ACA_FP AC_FP AI_FP
BDATE
2015-01-01 NaN NaN NaN
2015-01-02 NaN NaN NaN
2015-01-05 1 NaN NaN
2015-01-06 NaN NaN NaN
2015-01-07 NaN NaN NaN
2015-01-08 NaN 0.2 NaN
2015-01-09 NaN NaN NaN
2015-01-12 5 NaN NaN
2015-01-13 NaN NaN NaN
2015-01-14 NaN NaN NaN
2015-01-15 NaN NaN NaN
И я бы хотел, чтобы за каждый месяц, чтобы получить последнее не-NaN значение каждого столбца (NaN, если нет действительного значения). Следовательно, что-то вроде
eqt_code ACA_FP AC_FP AI_FP
BDATE
2015-01-31 5 0.2 NaN
2015-02-28 10 1 3
2015-03-31 NaN NaN 3
2015-04-30 10 1 3
У меня было две идеи для этого:
Сделайте ffill
с лимитом, который подходит к концу месяца. Что-то вроде df.ffill(<add good thing here>).resample('M').last()
.
Используйте last_valid_index
с resample('M')
.