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

如何通过索引删除Pandas DataFrame指定区间内的列

问题原因

df.drop()方法接收的删除目标为待删除的列标签/列名集合,你传入的df.iloc[:, 1:55]是对应列的实际数据子集,参数格式不匹配,因此无法达到预期删除效果。

正确实现方案

分两种场景处理:

场景1:删除的是「从左到右计数的第1950~2004位列」(整数位置索引)

直接取对应位置的列名列表传入即可,注意Python切片为左闭右开规则,要包含2004位列时结束索引需写为2005:

test = df.drop(df.columns[1950:2005], axis=1)

也可以通过反向保留需要的列实现,逻辑更直观不容易出错:

import numpy as np
# 保留1950位之前、2005位之后的所有列
test = df.iloc[:, np.r_[0:1950, 2005:df.shape[1]]]

场景2:删除的是「列名本身为1950~2004的列」(列名为年份格式的数值/字符串)

直接生成对应列名列表传入即可:

# 列名为整数时用这行
drop_cols = list(range(1950, 2005))
# 列名为字符串时替换为这行
# drop_cols = [str(i) for i in range(1950, 2005)]
test = df.drop(drop_cols, axis=1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 00:06:10