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

如何从3D DataFrame的每个一级列分组中统一提取A、B两个子列

你这个是Pandas的**多级列索引(MultiIndex)**结构,按以下方法实现即可:

核心实现代码

直接使用IndexSlice索引切片器,可读性更高:

import pandas as pd

# 定义索引切片器
idx = pd.IndexSlice
# 第一个冒号选取所有行,后面的切片表示一级列全选、二级列仅选A和B
result_df = df.loc[:, idx[:, ['A', 'B']]]

如果不想额外定义切片器,也可以直接用原生切片写法:

result_df = df.loc[:, (slice(None), ['A', 'B'])]

效果验证示例

你可以用下面的测试代码验证效果:

import pandas as pd
import numpy as np

# 构造和你描述一致的测试数据
columns = pd.MultiIndex.from_product(
    [['d1', 'd2', 'd3'], ['A', 'B', 'C', 'D']],
    names=['一级列', '二级列']
)
df = pd.DataFrame(np.random.randn(3, 12), columns=columns)
print("原始列结构:\n", df.columns)

# 执行提取
idx = pd.IndexSlice
result_df = df.loc[:, idx[:, ['A', 'B']]]
print("提取后列结构:\n", result_df.columns)

运行后输出的列结构完全符合你需要的格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 01:57:03