我试图用空字符串替换 np.nan
但我进了None牢房,那有什么问题?
谢谢
df.replace('', np.nan)
Run Code Online (Sandbox Code Playgroud)
一定是你的数据有问题,而不是pandas有问题。请参阅下面的示例:
>>> data = [['a', 'b', ''], ['', 'e', 'f']]
>>> df = pd.DataFrame(data)
>>> df
0 1 2
0 a b
1 e f
Run Code Online (Sandbox Code Playgroud)
如果您尝试在上面的示例中替换''为,您将得到所需的结果:np.nan
>>> df.replace('', np.nan)
0 1 2
0 a b NaN
1 NaN e f
Run Code Online (Sandbox Code Playgroud)
但是,如果万一您的数据未正确指定:
>>> data = [['a', 'b', None], [None, 'e', 'f']]
>>> df = pd.DataFrame(data)
>>> df
0 1 2
0 a b None
1 None e f
Run Code Online (Sandbox Code Playgroud)
pandas无法提供帮助,因为您的数据不包含空字符串,而是包含非指定值 ( None):
>>> df.replace('', np.nan)
0 1 2
0 a b None
1 None e f
Run Code Online (Sandbox Code Playgroud)
None但是,您仍然有机会从表中删除 s 。尽管听起来很愚蠢,但以下内容应该仍然有效:
>>> df.replace(np.nan, np.nan)
0 1 2
0 a b NaN
1 NaN e f
Run Code Online (Sandbox Code Playgroud)
如果没有原始数据,很难说,但希望以上内容有所帮助。