如何在Python中删除Dataframe里仅首单元格有值的特定行
Python删除DataFrame仅首列有值其余全空行的实现方法
核心思路是按行校验列值特征,筛选掉符合「首列非空、其余列全为空」特征的行即可。
前置依赖
确保已经安装pandas库,导入方式如下:import pandas as pd
核心实现代码
场景1:仅需判定NaN/PD.NA类空值
# mask为符合待删除特征的行的布尔掩码 mask = (df.iloc[:, 1:].isna().all(axis=1)) & (df.iloc[:, 0].notna()) # 取反后保留正常行,得到清理后的DataFrame df_clean = df[~mask]
场景2:需同时将空字符串判定为空值
# 先把空字符串替换为NA再做判断,覆盖空文本场景 mask = (df.iloc[:, 1:].replace('', pd.NA).isna().all(axis=1)) & (df.iloc[:, 0].replace('', pd.NA).notna()) df_clean = df[~mask]
关键逻辑说明
df.iloc[:, 1:]选中除第一列外的所有列,适配任意列数的DataFrameisna().all(axis=1)按行遍历,判断该行所有选中列是否全为空~为取反运算符,过滤掉所有符合待删除特征的行
如果需要直接修改原DataFrame,直接将清理后的结果赋值给原变量即可。
内容的提问来源于stack exchange,提问作者eeco_haldia
相关产品推荐
相关产品推荐

