我有一个包含非常混合的列的数据框。我正在尝试设置所有出现的 None
或NaN
至None
.
我正在尝试回答这个问题:Use None instead of np.nan for null values in pandas DataFrame但接受的答案并没有捕获所有空实例。示例:
my_array = ['1','2',None,4]
df = pd.DataFrame([my_array], columns=['Morning', 'Midday', 'Evening', 'Night'])
df = df.append({'Midday':'10'}, ignore_index=True)
结果
Morning Midday Evening Night
0 1 2 None 4.0
1 NaN 10 NaN NaN
正在申请df.where()
查找并替换所有空值结果:
df.where(df.notnull(), None)
Morning Midday Evening Night
0 1 2 None 4.0
1 None 10 None NaN
但我想要输出
Morning Midday Evening Night
0 1 2 None 4.0
1 None 10 None None
我错了什么,或者是 df.where()
出错了吗?
最佳答案
您需要将数据类型更改为object
out = df.astype(object).where(df.notna(), None)
Out[392]:
Morning Midday Evening Night
0 1 2 None 4.0
1 None 10 None None
关于python - 为什么 df.where() 不替换所有空值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70803876/