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

如何使用pandas仅删除数据集末尾全为缺失值的列

解决方案

你可以通过pandas向量化操作实现需求,全程无循环,性能和你原有操作几乎一致,完全满足数千行数据的处理效率要求:

完整代码

import pandas as pd

# 1. 读取数据,预分配列数可根据实际最大列数调整
df = pd.read_csv(file_path, names=list(range(100)))

# 2. 计算每列是否存在至少一个非空值
col_has_value = df.notna().any(axis=0)

# 3. 特殊情况处理:所有列全为空时直接返回空表
if not col_has_value.any():
    df = pd.DataFrame()
else:
    # 4. 定位最后一个存在非空值的列
    last_valid_col_idx = len(col_has_value) - col_has_value[::-1].argmax() - 1
    # 5. 切片保留从开头到最后一个有效列的所有内容
    df = df.iloc[:, :last_valid_col_idx + 1]

逻辑说明

  • 先按你原有的方式预分配足够多的列读取整份数据
  • 通过df.notna().any(axis=0)得到每列是否有非空值的布尔序列
  • 将布尔序列反转后取第一个True的位置,换算得到原序列中最后一个有值的列的索引
  • 直接按索引切片即可保留中间全空列,同时删除末尾所有全空列

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 04:15:00