熊猫:使用最后可用的填充缺失值

Posted

技术标签:

【中文标题】熊猫:使用最后可用的填充缺失值【英文标题】:Pandas: Fill missing values using last available 【发布时间】:2018-01-01 10:05:41 【问题描述】:

我有一个如下的数据框:

              A       B 
  zDate
01-JAN-17    100     200
02-JAN-17    111     203
03-JAN-17    NaN     202
04-JAN-17    109     205
05-JAN-17    101     211
06-JAN-17    105     NaN
07-JAN-17    104     NaN

使用最后可用的值来填充缺失值的最佳方法是什么?

以下是预期的结果:

              A       B 
  zDate
01-JAN-17    100     200
02-JAN-17    111     203
03-JAN-17    111     202
04-JAN-17    109     205
05-JAN-17    101     211
06-JAN-17    105     211
07-JAN-17    104     211

【问题讨论】:

【参考方案1】:

使用ffill函数,与fillnaffill方法相同:

df = df.ffill()
print (df)
               A      B
zDate                  
01-JAN-17  100.0  200.0
02-JAN-17  111.0  203.0
03-JAN-17  111.0  202.0
04-JAN-17  109.0  205.0
05-JAN-17  101.0  211.0
06-JAN-17  105.0  211.0
07-JAN-17  104.0  211.0

【讨论】:

完美答案。我只是想知道您可以使用应用功能实现相同的功能吗?例如,这个 sn-p 将用“Is Null value”替换 NaN。我无法想出一个逻辑来使用以前的值。 pastebin.com/raw/n384ba1q @ChankeyPathak - 我认为申请不是必需的,简单使用df = df.fillna('Is Null value') 不,我的意思是您的答案使用ffill 方法填充值。 apply 可以用额外的逻辑做同样的事情吗?这只是为了学习目的。我只是在为 OP 的问题寻找 fillna 的替代方案。 @ChankeyPathak - 为什么不发布问题?示例数据、您的代码、所需的输出?因为不知道你觉得如何使用apply

以上是关于熊猫:使用最后可用的填充缺失值的主要内容,如果未能解决你的问题,请参考以下文章

熊猫:在每组中按平均值填充缺失值

熊猫列多索引中的缺失值

如何用条件填充缺失值?

如何合并熊猫中的重复行?

用之前的非缺失值填充缺失的 pandas 数据,按 key 分组

R语言-均值填充缺失值