在Pandas DataFrame中,将无效值替换为None。
- 论坛
- 在Pandas DataFrame中,将无效值替换为None。
26 浏览
在Pandas DataFrame中,将无效值替换为None。
在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 - //这个没有被替换 1 3 2 2 3 5 4 1 5 -5 6 -1 7 -1 //这个改为了`-1`... 8 9
为什么会返回这样奇怪的结果?
因为我想将这个数据框导入MySQL数据库,所以我不能在数据框的任何元素中放入NaN
值,而是想放入None
。当然,你可以先将'-'
更改为NaN
,然后再将NaN
转换为None
,但我想知道为什么数据框会以这种可怕的方式行动。
在OS X 10.8上测试了Python 2.7上的pandas 0.12.0 dev版本。Python是OS X上的预装版本,我使用SciPy Superpack脚本安装了pandas,供你参考。