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

如何访问带多层列索引的pandas三维DataFrame的指定列?

Pandas多层列索引筛选指定次级列的实现方法

你可以通过以下几种常用方法实现需求:

方法1:使用pd.IndexSlice(最推荐,可读性最高)

这是Pandas专门为多层索引设计的选择器,语法直观易维护:

import pandas as pd

# 定义索引选择器
idx = pd.IndexSlice
# 行维度取所有行,列维度第一层级任意、第二层级匹配col_1
result = df.loc[:, idx[:, 'col_1']]

方法2:使用xs方法

xs是Pandas专门用于提取多层索引指定层级值的方法,参数配置灵活:

# level=1指定匹配第二层级索引(层级从0开始计数,顶层列属于level 0)
# axis=1指定操作列索引,drop_level=False保留原有多层索引结构
result = df.xs('col_1', level=1, axis=1, drop_level=False)

方法3:使用布尔索引筛选

直接通过列层级值做布尔判断筛选,无需额外导入工具:

# 获取第二层级所有列名,筛选等于col_1的列
result = df[df.columns.get_level_values(1) == 'col_1']

以上三种方法输出的结果完全符合要求的双层级列结构,会保留h1/col_1、h2/col_1两列。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 14:18:04