我试图用空字符串替换 np.nan
但我进了None牢房,那有什么问题?
谢谢
df.replace('', np.nan)
一定是你的数据有问题,而不是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但是,您仍然有机会从表中删除 s 。尽管听起来很愚蠢,但以下内容应该仍然有效:
>>> df.replace(np.nan, np.nan)
     0  1    2
0    a  b  NaN
1  NaN  e    f
如果没有原始数据,很难说,但希望以上内容有所帮助。