numpy - 用 np.nan 替换空字符串但得到 'NaN'

标签 numpy pandas

我试图用 np.nan 替换空字符串

但我得到了 None在细胞中,这有什么问题?

谢谢

df.replace('', np.nan)

enter image description here

最佳答案

您的数据一定有问题,而不是 Pandas 。看下面的例子:

>>> data = [['a', 'b', ''], ['', 'e', 'f']]
>>> df = pd.DataFrame(data)
>>> df
   0  1  2
0  a  b   
1     e  f

如果您尝试更换 ''np.nan在上面的例子中,你得到了想要的结果:
>>> df.replace('', np.nan)
     0  1    2
0    a  b  NaN
1  NaN  e    f

但是,如果您的数据没有正确指定:
>>> data = [['a', 'b', None], [None, 'e', 'f']]
>>> df = pd.DataFrame(data)
>>> df
      0  1     2
0     a  b  None  
1  None  e     f
pandas无济于事,因为您的数据不包含空字符串,而是包含非指定值( None ):
>>> df.replace('', np.nan) 
      0  1     2
0     a  b  None
1  None  e     f

但是,您仍有机会删除 None来自你的 table 。以下,虽然听起来很愚蠢,但应该仍然有效:
>>> df.replace(np.nan, np.nan)
     0  1    2
0    a  b  NaN
1  NaN  e    f

没有原始数据很难说,但希望以上内容有所帮助。

关于numpy - 用 np.nan 替换空字符串但得到 'NaN',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33606946/

相关文章:

python - 计算不同长度的 3 维数组的平均值

python - Pandas Lambda 函数 : attribute error 'occurred at index 0'

python - 比较两个数据帧并过滤匹配的值

python - 处理丢失数据时出现 IndexError : too many indices for array ,

python - numpy 填充序列而不是常量值

python - 数组运算等价Python和Matlab

python - 当作为参数传递给函数时获取 numpy 结构化数组列的名称

python - 在 Pandas Groupby 函数中重命名列名

python - Pandas :如何找到一个群体的百分比?

python - 切片具有相同索引号 pandas 的行