numpy – 用np.nan替换空字符串但得到’NaN’

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

但我在细胞中得到了无,那有什么不对?

谢谢

df.replace('', np.nan)

《numpy – 用np.nan替换空字符串但得到’NaN’》

最佳答案 您的数据一定存在问题,而熊猫则不然.见下面的例子:

>>> 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无法帮助,因为您的数据不包含空字符串,但是非指定值(无):

>>> df.replace('', np.nan) 
      0  1     2
0     a  b  None
1  None  e     f

但是,您仍然有可能从表中删除Nones.听起来很傻,以下内容应该仍然有效:

>>> df.replace(np.nan, np.nan)
     0  1    2
0    a  b  NaN
1  NaN  e    f

没有你的原始数据很难说,但希望上述有所帮助.

点赞