python - 在 Pandas 中获取每个月的最后一个非 NaN 值

标签 python pandas dataframe 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_indexresample('M') .

最佳答案

使用重采样

df.resample('M').last()
Out[82]: 
            ACA_FP  AC_FP  AI_FP
eqt_code                        
2015-01-31     1.0    0.2    NaN

关于python - 在 Pandas 中获取每个月的最后一个非 NaN 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55346265/

相关文章:

python - 如何删除开放数据集中无用的数据

python - 如何在python中将0.5四舍五入到最接近的整数?

r - 使用 R 的应用函数之一简化代码

r - 查找向量的相似元素并修改其间的所有内容

python - 包含在 Python 字符串中的粗体搜索文本

python - 二维高斯函数不能产生正确的结果

python - Django 模板中有两种不同的形式

python+docker : docker volume mounting with bad perms, 数据默默丢失

python - 如何有效地从一系列 pandas 数据框中删除元素

python - 用字典值替换 Pandas Dataframe 中的部分字符串