我是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)
但它没有用期望值取代NAN 任何帮助将不胜感激。
我正在参考下面的链接。
答案 0 :(得分:1)
您可以fillna
Series
创建dictionary
:
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}
<强>详细强>:
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