当创建一个带有None
值的 Pandas DataFrame 时,它们被转换为NaN
:
> df = pd.DataFrame({'a': [0, None, 2]})
> df
a
0 0.0
1 NaN
2 2.0
如果我None
按索引设置值也是一样的:
> df = pd.DataFrame({'a': [0, 1, 2]})
> df["a"].iloc[1] = None
> df
a
0 0.0
1 NaN
2 2.0
但是,如果我进行替换,就会开始发生奇怪的事情:
> df = pd.DataFrame({'a': [0, 1, 2, 3]})
> df["a"].replace(1, "foo")
a
0 0
1 'foo'
2 2
3 3
> df["a"].replace(2, None)
a
0 0
1 1
2 1
3 3
这里发生了什么?