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

如何在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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 05:53:12