【问题标题】:Filling NaN values with values that are not NaN using Python Pandas使用 Python Pandas 用非 NaN 值填充 NaN 值
【发布时间】:2018-06-21 00:15:08
【问题描述】:

我有一个数据框,它有 2 列,两列中都有一些 NaN 值。

df = { 'A' : [1,Nan, 2, Nan, Nan, 3],
       'B' : [Nan, Nan, 3, 4, 5 ,Nan]}

我想用 B 列中的 NaN 值填充 A 列中的 NaN 值,反之亦然。 结果应该是这样的:

df = { 'A': [1,Nan, 2, 4, 5, 3],
       'B' : [1, Nan, 3, 4, 5 ,3]}

谢谢

【问题讨论】:

  • 请分享您到目前为止所尝试的内容。

标签: python pandas


【解决方案1】:

使用bfillffillaxis 参数等于 1:

df.ffill(1).bfill(1)

输出:

     A    B
0  1.0  1.0
1  NaN  NaN
2  2.0  3.0
3  4.0  4.0
4  5.0  5.0
5  3.0  3.0

【讨论】:

    【解决方案2】:

    这是使用df.fillna的一种方法

    演示:

    import pandas as pd
    import numpy as np
    df = { 'A' : [1,np.nan, 2, np.nan, np.nan, 3],
           'B' : [np.nan, np.nan, 3, 4, 5 ,np.nan]}
    df = pd.DataFrame(df)
    df["A"] = df["A"].fillna(df["B"])
    df["B"] = df["B"].fillna(df["A"])
    print(df)
    

    输出:

         A    B
    0  1.0  1.0
    1  NaN  NaN
    2  2.0  3.0
    3  4.0  4.0
    4  5.0  5.0
    5  3.0  3.0
    

    【讨论】:

      猜你喜欢
      • 2015-02-14
      • 2019-12-26
      • 2021-12-14
      • 2017-09-16
      • 2019-03-21
      • 1970-01-01
      • 1970-01-01
      • 2017-04-14
      • 1970-01-01
      相关资源
      最近更新 更多