首页 文章

使用Python中的Replace()或fillna()将NAN替换为Pandas中的列的字典值

提问于
浏览
3

我是python的新手,我正在尝试使用fillna()功能并面临一些问题 . 我有一个名为Temp_Data_DF的DataFrame,它有两列,如下所示:

Temp_Data_DF:
A  B
1  NAN
2  NAN
3  {'KEY':1,'VALUE':2}

我想用Dict值替换所有NAN,结果数据框应该是这样的:

Temp_Data_DF:
A  B
1  {'KEY':1,'VALUE':2}
2  {'KEY':1,'VALUE':2}
3  {'KEY':1,'VALUE':2}

我尝试了下面的代码:

Bvalue = {'KEY':1,'VALUE':2}
Temp_Data_DF['B']=Temp_Data_DF['B'].fillna(Bvalue)

但它没有取代具有所需 Value 的NAN任何帮助将不胜感激 .

我正在参考下面的链接 .

链接:Pandas dataframe fillna() only some columns in place

1 回答

  • 1

    您可以通过 dictionary 创建的 Series fillna

    Bvalue = {'KEY':10,'VALUE':20}
    Temp_Data_DF['B']=Temp_Data_DF['B'].fillna(pd.Series([Bvalue], index=Temp_Data_DF.index))
    print (Temp_Data_DF)
       A                         B
    0  1  {'VALUE': 20, 'KEY': 10}
    1  2  {'VALUE': 20, 'KEY': 10}
    2  3    {'VALUE': 2, 'KEY': 1}
    

    Detail

    print (pd.Series([Bvalue], index=Temp_Data_DF.index))
    0    {'VALUE': 20, 'KEY': 10}
    1    {'VALUE': 20, 'KEY': 10}
    2    {'VALUE': 20, 'KEY': 10}
    dtype: object
    

相关问题