我有一个混合类型的pandas dataFrame,有些是字符串,有些是数字.我想用'.'替换字符串列中的NAN值,并将浮点列中的NAN值替换为0.
考虑这个小小的虚构示例:
df = pd.DataFrame({'Name':['Jack','Sue',pd.np.nan,'Bob','Alice','John'],
'A': [1, 2.1, pd.np.nan, 4.7, 5.6, 6.8],
'B': [.25, pd.np.nan, pd.np.nan, 4, 12.2, 14.4],
'City':['Seattle','SF','LA','OC',pd.np.nan,pd.np.nan]})
Run Code Online (Sandbox Code Playgroud)
现在,我可以用3行代码完成:
df['Name'].fillna('.',inplace=True)
df['City'].fillna('.',inplace=True)
df.fillna(0,inplace=True)
Run Code Online (Sandbox Code Playgroud)
由于这是一个小数据帧,3行可能没问题.在我的实际例子中(由于数据机密性原因,我不能在这里分享),我有更多的字符串列和数字列.所以我最终只为fillna写了很多行.这样做有简洁的方法吗?