如何从Pandas DataFrame删除NaN值?dropna方法失效求助
解决pandas dropna无法删除含NaN行的问题
给你几个直接的排查和解决步骤:
先确认"nan"是不是pandas能识别的真正NaN
你的样本数据里的nan看起来带前导空格,可能是字符串类型的' nan',不是pandas默认的np.nan,这时候dropna根本识别不出来。先执行代码验证:import numpy as np print(df3['S4_SIG2'].unique())如果输出里出现
' nan'(带引号的字符串),先把它替换成标准NaN:df3['S4_SIG2'] = df3['S4_SIG2'].replace(' nan', np.nan)强制转换列类型为数值型
如果S4_SIG2列是object类型,即使是NaN也可能无法被dropna识别。可以把列转成数值型,无法转换的内容会自动变成标准NaN:import pandas as pd df3['S4_SIG2'] = pd.to_numeric(df3['S4_SIG2'], errors='coerce')重新执行dropna操作
做完上面的处理后,再运行你的删除代码:df4 = df3.dropna(subset=['S4_SIG2'], how='any') print(df4)这时候应该只会保留
S4_SIG2列有有效值的第一行数据。
内容的提问来源于stack exchange,提问作者Prater
相关产品推荐
相关产品推荐

