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

使用pandas dropna()删除缺失值异常,输出为Excel列名求排查

问题根源

你代码里的逻辑走反了:

  • df1 = df.loc[df.isnull().any(axis=1)]是把所有带至少一个缺失值的行都挑出来了,取前10行得到first_10_rows。
  • 然后你对这些本身就带缺失值的行调用dropna()(默认规则是只要行里有缺失值就删整行),结果自然是所有行都被删掉,只剩列名。
修正方法

根据你的实际需求选对应的写法:

需求1:删除所有含缺失值的行

直接对原始DataFrame操作,不用先筛选有缺失的行:

import numpy as np
import pandas as pd
df = pd.read_excel("1.xlsx",index_col='Variables',na_values=['-'])
print("原始数据前10行")
print(df.head(10))
print(" ")
print("删除含缺失值的行后的数据")
df_cleaned = df.dropna()
print(df_cleaned)

需求2:只删除全是缺失值的行

如果想保留部分有缺失值的行,只删完全空的行,给dropna()加参数:

# 只删除整行都是缺失值的记录
df_cleaned = df.dropna(how='all')

需求3:先看有缺失的行,再看清理后的数据

要是你想先展示带缺失的行,再看清理后的完整结果,得分开对原始数据处理:

import numpy as np
import pandas as pd
df = pd.read_excel("1.xlsx",index_col='Variables',na_values=['-'])
print("含缺失值的前10行")
df_with_na = df.loc[df.isnull().any(axis=1)].head(10)
print(df_with_na)
print(" ")
print("清理后的完整数据")
df_cleaned = df.dropna()
print(df_cleaned)

内容的提问来源于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 22:27:24