如何删除Pandas DataFrame中所有列值均为NA的行?
删除Pandas DataFrame中所有列值均为NA的行
这需求太常见了,用Pandas自带的方法就能轻松搞定!直接用dropna()函数搭配how='all'参数,就能精准删除所有列都是缺失值的行,完全匹配你的要求。
具体操作示例
首先我们先构造你提供的示例数据(统一用np.nan表示缺失值,和Pandas的缺失值规范对齐):
import pandas as pd import numpy as np # 构建示例DataFrame df = pd.DataFrame({ 'L1': [np.nan, np.nan, 1, np.nan, 5, np.nan], 'L2': [1, np.nan, 2, np.nan, 6, np.nan], 'L3': [2, np.nan, 3, np.nan, 7, 9], 'L4': [np.nan, np.nan, 4, np.nan, 8, 10] })
然后执行删除全NA行的操作:
# 删除所有列均为NA的行 cleaned_df = df.dropna(how='all')
最终结果
运行后cleaned_df就是你想要的输出:
L1 L2 L3 L4 0 NaN 1.0 2 NaN 2 1.0 2.0 3 4.0 4 5.0 6.0 7 8.0 5 NaN NaN 9 10.0
简单说下原理:dropna()是Pandas专门处理缺失值的工具函数,how='all'这个参数明确告诉它——只有当某一行的所有列都是缺失值时才删除该行,刚好贴合你的需求。如果是要删除只要有一个缺失值的行,用默认的how='any'就行,但这里我们要的是全NA的行,所以how='all'就是最佳选择~
内容的提问来源于stack exchange,提问作者Cyley Simon
相关产品推荐
相关产品推荐

