Numpy 将空字符串替换为np.nan,但得到';楠';

Numpy 将空字符串替换为np.nan,但得到';楠';,numpy,pandas,Numpy,Pandas,我试图用np.nan 但是我在单元格中没有,这有什么错 谢谢 df.replace('', np.nan) 您的数据肯定有问题,而不是熊猫。请参见下面的示例: >>> data = [['a', 'b', ''], ['', 'e', 'f']] >>> df = pd.DataFrame(data) >>> df 0 1 2 0 a b 1 e f 如果在上述示例中尝试将'替换为np.nan,则会得到所需的

我试图用
np.nan

但是我在单元格中没有,这有什么错

谢谢

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

但是,仍然有可能从表中删除
None
s。下面这句话听起来很傻,但应该仍然有效:

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

如果没有原始数据很难说,但希望上面的帮助。

你的标题说你得到了“NaN”?(这是意料之中的事)。但你能给出一个可重复的例子吗?()
>>> df.replace(np.nan, np.nan)
     0  1    2
0    a  b  NaN
1  NaN  e    f