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

如何在Pandas DataFrame中按指定列名选取两列间的所有列?

解决方案

有几种简洁的方法可以实现这个需求,无需手动列出所有列:

方法1:使用loc直接切片列名

Pandas的loc支持通过列名进行切片,且切片会包含起始和结束列,这是最直观的实现方式:

import pandas as pd
df = pd.DataFrame()
df['a'] = [1, 2]
df['a1'] = [1, 2]
df['a2'] = [10, 12]
df['a3'] = [1, -2]
df['a4'] = [1, 12]
df['a5'] = [12, 20]
df['a6'] = [11, 3]

# 选取a1到a4之间的所有列(包含两端)
result = df.loc[:, 'a1':'a4']
print(result)

输出结果:

a1  a2  a3  a4
0   1  10   1   1
1   2  12  -2  12

方法2:通过列索引位置切片

如果需要规避列名字符串排序的干扰,完全依赖DataFrame中列的实际顺序,可以先获取列的索引位置,再用iloc切片:

# 获取列名的索引位置
cols = df.columns
start_idx = cols.get_loc('a1')
end_idx = cols.get_loc('a4')

# iloc切片为左闭右开,因此end_idx需要加1以包含目标结束列
result = df.iloc[:, start_idx:end_idx+1]
print(result)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 14:25:37