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

使用整数索引的Pandas MultiIndex切片结果不符合预期?

Pandas多层索引切片问题:不是Bug,是操作方式有误

这不是Pandas的Bug,是你对slice()的用法理解偏差导致的。

问题原因

当你在多层索引的顶层使用slice(n)时,Pandas会将其解析为从索引起始位置到n的范围切片(左闭右闭规则)。你用slice(1)时刚好符合预期,只是因为1是顶层索引的第一个值,范围仅包含它自己;但用slice(2)时,范围覆盖了从1到2的所有顶层索引值,所以返回了全部数据。

正确操作方式

以下几种方法都能精准提取顶层索引为2的行:

方法1:直接指定索引值,无需slice

df.loc[(2, slice(None)), :]

返回结果:

Values
2   A   2
2   B   3

方法2:用slice指定精确范围(起始与结束均为2)

df.loc[(slice(2, 2), slice(None)), :]

返回结果与上述一致。

方法3:用xs()方法(更简洁)

xs()是Pandas专门用于提取多层索引中某一层特定值的方法:

df.xs(2, level=0)

返回结果:

Values
A       2
B       3

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 12:05:02