是否有任何方法可以在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.当然,您可以先将’ – ‘更改为NaN,然后将NaN转换为None,但我想知道为什么数据帧以如此可怕的方式运行.
Tested on pandas 0.12.0 dev on Python 2.7 and OS X 10.8. Python is a
pre-installed version on OS X and I installed pandas by using SciPy
Superpack script, for your information.
解决方法:
实际上在更高版本的pandas中,这会产生一个TypeEr