当 None 和数据框中的 NaN 值时与 fillna() 混淆
Confusion with fillna() when None and NaN values in dataframe
当我将 fillna('New_Value)
应用于下面的 df
时,它会填充所有 None
和 NaN
值,但 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'})
当我将 fillna('New_Value)
应用于下面的 df
时,它会填充所有 None
和 NaN
值,但 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'})