如何在Pandas中删除从指定列(C列)开始全空的行?
Pandas 删除指定列之后全为空的行
实现思路
直接定位从C列开始的所有后续列,检查每行是否存在至少一个非空值,通过布尔索引保留符合条件的行,自动剔除C列及之后全为空的行。
示例代码
import pandas as pd import numpy as np # 构造示例DataFrame df = pd.DataFrame({ 'A': ['a', 'aaa', 'aa', 'a', np.nan], 'B': ['b', 'bbb', 'b', 'b', np.nan], 'C': [np.nan, 'cc', np.nan, np.nan, 'c'], 'D': [np.nan, np.nan, np.nan, 'dd', np.nan] }) # 筛选出C列及之后至少有一个非空值的行 filtered_df = df[df.loc[:, 'C':].notna().any(axis=1)] print(filtered_df)
代码说明
df.loc[:, 'C':]:选中从C列到最后一列的所有数据.notna():将非空值转换为True,空值转换为False.any(axis=1):逐行检查是否存在至少一个True(即该行有非空值),返回布尔数组- 用布尔数组作为索引,保留对应行,自动删除C列及之后全为空的行
输出结果
A B C D 1 aaa bbb cc NaN 3 a b NaN dd 4 NaN NaN c NaN
内容的提问来源于stack exchange,提问作者Pisa Ponente
相关产品推荐
相关产品推荐

