I have a DataFrame of the form
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(<添加好的内容>).resample('M').last()
。使用
last_valid_index
和resample('M')
。