【问题标题】:Pandas: fill in NaN values with dictionary references another columnPandas:用字典引用另一列填充 NaN 值
【发布时间】:2017-03-17 03:50:19
【问题描述】:

我有一本像这样的字典

dict = {'b' : '5', 'c' : '4'}

我的数据框看起来像这样

   A  B
0  a  2
1  b  NaN
2  c  NaN

有没有办法使用从 A 列到 B 列的字典映射来填充 NaN 值,同时保留其余列值?

【问题讨论】:

    标签: pandas


    【解决方案1】:

    你可以在fillna里面映射dict值

    df.B = df.B.fillna(df.A.map(dict))
    

    打印(df)

        A   B
    0   a   2
    1   b   5
    2   c   4
    

    【讨论】:

      【解决方案2】:

      这很简单

      df['B'] = df['B'].fillna(df['A'].apply(lambda x: dict.get(x)))
      

      这也适用于更大的数据集。

      【讨论】:

        【解决方案3】:

        不幸的是,这不是像pd.fillna() 这样的内置函数的选项之一。

        编辑:感谢您的更正。显然这是可能的,如@Vaishali 的回答所示。

        但是,您可以先根据缺失值对数据框进行子集化,然后将地图与您的字典一起应用。

        df.loc[df['B'].isnull(), 'B'] = df['A'].map(dict)
        

        【讨论】:

          猜你喜欢
          • 2021-12-14
          • 1970-01-01
          • 2021-01-24
          • 1970-01-01
          • 2019-12-26
          • 1970-01-01
          • 1970-01-01
          • 2015-02-14
          • 2020-06-10
          相关资源
          最近更新 更多