最佳答案
您的数据一定有问题,而不是 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/