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

关于打印含缺失值前10行异常及dropna()处理缺失值的问题求助

问题解决方案

1. 正确打印包含缺失值的前10行

你当前代码里的df.iloc[:, 0:10]是提取前10列的所有行,并非筛选含缺失值的前10行。要实现需求,需先筛选出存在缺失值的行,再取前10条:

# 筛选含缺失值的行,取前10条
rows_with_na = df[df.isna().any(axis=1)]
top10_na_rows = rows_with_na.head(10)
print("前10行含缺失值的数据")
print(top10_na_rows)

2. 修复dropna结果不符的问题

你的注释写的是删除含缺失值的列,但dropna()默认行为是删除含缺失值的行。如果要删除列,必须指定axis=1参数:

# 删除包含缺失值的列
mydf1 = mydf.dropna(axis=1)

另外,先验证na_values=['-']是否生效,确认'-'被正确转为缺失值:

# 查看各列缺失值数量,验证识别是否正确
print("各列缺失值统计")
print(df.isna().sum())

完整修正后的代码

import pandas as pd
df = pd.read_excel("1.xlsx", index_col='Variables', na_values=['-'])

# 验证缺失值识别效果
print("各列缺失值统计")
print(df.isna().sum())

# 输出含缺失值的前10行
print("\n前10行含缺失值的数据")
rows_with_na = df[df.isna().any(axis=1)]
print(rows_with_na.head(10))

# 取前10列并删除含缺失值的列
print("\n删除含缺失值列后的数据集")
mydf = df.iloc[:, 0:10]
mydf1 = mydf.dropna(axis=1)
print(mydf1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 20:22:36