获取熊猫每个月的最后一个非 NaN 值

我有一个表单的 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')。


慕码人8056858
浏览 113回答 2
2回答

森林海

使用 resampledf.resample('M').last()Out[82]:&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ACA_FP&nbsp; AC_FP&nbsp; AI_FPeqt_code&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;2015-01-31&nbsp; &nbsp; &nbsp;1.0&nbsp; &nbsp; 0.2&nbsp; &nbsp; NaN

慕田峪7331174

使用groupby和last:# Do this if the index isn't a DatetimeIndex.# df.index = pd.to_datetime(df.index)df.groupby(df.index + pd.offsets.MonthEnd(0)).last()&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ACA_FP&nbsp; AC_FP&nbsp; AI_FPBDATE&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;2015-01-31&nbsp; &nbsp; &nbsp;5.0&nbsp; &nbsp; 0.2&nbsp; &nbsp; NaN...
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python