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

Python中如何删除pandas DataFrame的nan值?dropna无效如何解决

问题原因说明
  1. pandas的dropna()方法默认返回新的DataFrame,不会修改原对象,你原有代码中直接执行df.dropna()没有接收返回值也没加修改原对象的参数,所以原df的nan没有变化。
  2. 如果你对整个DataFrame执行dropna(),会删除所有包含空值的整行数据,由于你三列的有效长度不一致,这种操作会把所有列都截断到最短列的有效长度,不符合你各列单独保留所有有效值的需求。
解决方案

直接对单个列执行dropna()后转列表即可,代码如下:

import pandas as pd

excel_name = r'file_name.xlsx'
df = pd.read_excel(excel_name, engine='openpyxl')

# 单列单独删除空值后转列表
clomun_1 = df['clomun1'].dropna().tolist()
clomun_2 = df['clomun2'].dropna().tolist()
clomun_3 = df['clomun3'].dropna().tolist()

print(clomun_1)
print(clomun_2)
print(clomun_3)

如果你的输出中出现的是字符串类型的'nan'而非pandas原生的空值,可以额外加一层列表推导式过滤:

clomun_1 = [x for x in df['clomun1'].tolist() if str(x) != 'nan']

执行后输出结果为:

['value1', 'value2', 'value3', 'value4']
['value1', 'value2', 'value3', 'value4', 'value5', 'value6']
['value1', 'value2']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 17:15:05