【问题标题】: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

【问题讨论】:

    标签: python pandas dataframe time-series


    【解决方案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
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-16
    • 2016-04-30
    • 2020-06-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多