此线程 here 展示了 replace
和 inplace=True
以更改 Pandas 数据框中的值。
我想应用相同的技术,但替换为 None
mydf = pd.DataFrame({"col1":[5, 5, 8, 4, 5], "col2":[2, 5, 6, 7, 5]})
mydf.replace([5], None, inplace=True)
mydf
像这样改变,还有一个额外的输出
col1 col2
0 5 2
1 5 2
2 8 6
3 4 7
4 4 7
col1 None
col2 None
dtype: object
如何用 None
替换值?
答案 0 :(得分:1)
更喜欢使用 pd.NA
而不是 None
。 Read this
mydf.replace([5], pd.NA, inplace=True)
# mydf.replace([5], [None], inplace=True)
>>> mydf
col1 col2
0 <NA> 2
1 <NA> <NA>
2 8 6
3 4 7
4 <NA> <NA>
答案 1 :(得分:1)
None
也恰好是 value
参数的 default value 所以如果你需要使用它,你可以把它放在一个 1 元素的列表中以区分你不是传递默认值:
mydf = mydf.replace([5], [None])
还有:inplace=True
是 not so good,选择回分配