当 None 和数据框中的 NaN 值时与 fillna() 混淆

Confusion with fillna() when None and NaN values in dataframe

当我将 fillna('New_Value) 应用于下面的 df 时,它会填充所有 NoneNaN 值,但 Index 1 处的 Column:D 除外。

那么是什么原因呢?

这是我的代码

df=pd.DataFrame([{'A':None,'B':False,'C':1,'D':'a','E':np.NaN,'F':True,'G':'a','H':np.NaN},{'A':1,'B':2,'C':3,'D':'None','E':1,'F':True,'G':'b'},
                 {'A':False,'B':None,'C':None,'D':True,'E':2,'F':True,'G':'b','H':None},
                    {'A':'a','B':'b','C':1,'D':'b','E':3,'F':False,'G':'c','H':np.NaN},
                     {'A':None,'B':4,'C':6,'D':'c','E':None,'F':False,'G':'c','H':None},
                     {'A':None,'B':4,'C':6,'D':'c','E':None,'F':True,'G':'d','H':True},
                     {'A':True,'B':False,'C':True,'D':False,'E':True,'F':False,'G':False}])

在那种情况下,您将 None 写成了 string。删除引号 '

df = pd.DataFrame([{'A':None,'B':False,'C':1,'D':'a','E':np.NaN,'F':True,'G':'a','H':np.NaN},{'A':1,'B':2,'C':3,'D':None,'E':1,'F':True,'G':'b'}, ...)

如果不能修改df,替换字符串:

df = df.replace({'None':'New_Value'})