运行python2.7
Question1
我想在数据帧“测试”中将空字符串”替换为“无”:
from numpy.random import randn
test = pd.DataFrame(randn(3,2))
test.iloc[0,0]=''
test.replace('', None)
给我错误TypeError:
不能用DataFrame上的方法pad替换['']。
出了什么问题?
问题2:
从numpy.random导入randn
test = pd.DataFrame(randn(3,2))
# this works
test.iloc[0,1]= 'A'
test[1] = test[1].replace('A','b')
# this does not
test.iloc[0,0]=''
test.loc[0] = test[0].replace('', None)
test
0 1
0 b
1 0.042052 -1.44156
2 0.462131 -0.303288
我期待
test
0 1
0 None b
1 0.042052 -1.44156
2 0.462131 -0.303288
答案 0 :(得分:3)
没有人被解释为缺乏论据。试试:
test.replace({'':None})
问题2:
test.where(test != '', None)
答案 1 :(得分:0)
只需使用非数字。熊猫无论如何都会将您的None
转换为非数字*。其次,不要忘记将结果分配给新变量或将inplace
参数设置为True
。 test.replace('', np.NaN)
本身不执行任何操作。
import pandas as pd
import numpy as np
from numpy.random import randn
test = pd.DataFrame(randn(3,2))
test.iloc[0,0]=''
test = test.replace('', np.NaN)
*当所有数据具有相同的数据类型时,Pandas效果最佳,效率最高。在您的情况下为numpy.float64。 np.NaN
也是一个小数浮点数。如果您想在数据框中使用None
,则所有内容都需要存储为object
数据类型,这会降低效率。 np.NaN
可能正是您所需要的。