You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中pandas dropna未移除DataFrame的NaN值,该如何解决?

解决Pandas dropna未移除NaN值的问题

我来帮你搞定这个问题——你遇到的情况其实是Pandas里一个非常常见的小细节坑!

为什么你的代码没生效?

df.dropna(subset=["Deviation from Partisanship"]) 这行代码的作用是生成一个移除了指定列NaN值的新DataFrame对象,但它默认不会直接修改原来的df。你没有把这个新生成的结果重新赋值给df,也没使用inplace=True参数来原地修改原数据,所以原来的数据集完全没变化,NaN自然还留在里面。

两种彻底移除NaN的方法

方法1:将处理后的结果重新赋值给原变量

这是最推荐的方式(避免原地修改带来的意外问题):

import pandas as pd

df = pd.read_excel('sec3_data.xlsx')
# 把移除NaN后的新DataFrame存回df
df = df.dropna(subset=["Deviation from Partisanship"])
# 现在检查唯一值就不会有NaN了
print(df['Deviation from Partisanship'].unique())

方法2:使用inplace=True原地修改原DataFrame

如果你确实想直接修改原数据,可以添加这个参数:

import pandas as pd

df = pd.read_excel('sec3_data.xlsx')
# 直接在原df上移除指定列的NaN值
df.dropna(subset=["Deviation from Partisanship"], inplace=True)
print(df['Deviation from Partisanship'].unique())

验证移除效果

你可以用下面的代码确认NaN是否被完全移除:

# 检查指定列剩余的NaN数量,应该返回0
print(df['Deviation from Partisanship'].isna().sum())

内容的提问来源于stack exchange,提问作者Asra Khalid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:11:14