我是python的新手,我尝试使用fillna()函数,遇到了一些问题。我有一个名为Temp_Data_DF的DataFrame,它有两列,如下所示:
Temp_Data_DF:
A B
1 NAN
2 NAN
3 {'KEY':1,'VALUE':2}
我想将所有NAN替换为Dict值,结果 Dataframe 应如下所示:
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与预期的价值任何帮助将不胜感激。
我是指下面的链接。
链接:Pandas dataframe fillna() only some columns in place
2条答案
按热度按时间kwvwclae1#
您可以按
dictionary
创建的Series
执行fillna
:工作原理:
想法是创建新的
Series
,大小与字典填充的原始系列相同,所以如果使用fillna
的另一个Series
,它的工作很好。另一种解决方案:想法是使用
NaN != NaN
,因此如果在Series.apply
中使用if-else
,则也替换:wgmfuz8q2#
我也遇到过类似的问题,但是@jezrael的方法对我不起作用,我设法从默认的dict列表中创建一个系列来解决这个问题。