在 Python 的 Pandas 中,是否有任何方法可以用 None
替换值?
您可以使用 df.replace('pre', 'post')
并且可以将一个值替换为另一个值,但是如果您想替换为 None
值,则无法完成此操作,如果您尝试,您会得到一个奇怪的结果.
所以这是一个例子:
df = DataFrame(['-',3,2,5,1,-5,-1,'-',9])
df.replace('-', 0)
返回成功的结果。
但,
df.replace('-', None)
返回以下结果:
0
0 - // this isn't replaced
1 3
2 2
3 5
4 1
5 -5
6 -1
7 -1 // this is changed to `-1`...
8 9
为什么会返回这么奇怪的结果?
由于我想将此数据框倒入 MySQL 数据库,因此我无法将 NaN
值放入我的数据框的任何元素中,而是想将 None
放入。 Surely, you can first change '-'
to NaN
and then convert NaN
to None
, but I want to know why the dataframe acts in如此可怕的方式。
在 Python 2.7 和 OS X 10.8 上的 pandas 0.12.0 dev 上测试。 Python 是 OS X 上的预装版本,我使用 SciPy Superpack 脚本安装了 pandas,供您参考。
原文由 Blaszard 发布,翻译遵循 CC BY-SA 4.0 许可协议
实际上在更高版本的 pandas 中,这将给出一个 TypeError:
您可以通过传递列表或字典来实现:
但我建议使用 NaN 而不是 None: