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

如何在Pandas DataFrame中删除仅含NA值的行?

删除Pandas DataFrame中仅含NA值的行

问题场景

你有如下DataFrame:

artistweek1week2week3week4
Drake2231
MuseNANANANA
Bruno Mars3342
Imagine DragonsNANANANA
Justin Timberlake22NA1

需求是仅删除week1-week4列全为NA的行,保留像Justin Timberlake这种包含部分NA的有效行。

错误原因分析

你之前用的dropna()默认参数是how='any',会删除所有包含至少一个NA的行,这才导致误删了包含部分NA的行,不符合需求。

正确解决方案

使用dropna()时,指定how='all'(仅删除全为NA的行),同时通过subset参数限定只检查数值列(避免artist列的非NA值干扰判断):

import pandas as pd

# 假设你的DataFrame变量名为df
df = df.dropna(subset=['week1', 'week2', 'week3', 'week4'], how='all')

执行后就能得到你想要的结果:

artistweek1week2week3week4
Drake2231
Bruno Mars3342
Justin Timberlake22NA1

如果数值列是连续排列的,还可以用列索引简化代码,不用手动列所有列名:

df = df.dropna(subset=df.columns[1:], how='all')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 15:35:43