Python 多索引:根据索引编号选择列

Python 多索引:根据索引编号选择列,python,pandas,indexing,Python,Pandas,Indexing,我有一个多索引数据帧,在列上有两个索引级别 我可以根据列的名称选择列,这非常有效: df.loc[:, (['Level 0 column name'], ['Level 1 first column name', 'Level 1 second column name'])] 但是,我无法根据列数选择列,例如: df.loc[:, (0, ['Level 1 first column name', 'Level 1 second column name'])] 我得到一个KeyError:

我有一个多索引数据帧,在列上有两个索引级别


我可以根据列的名称选择列,这非常有效:

df.loc[:, (['Level 0 column name'], ['Level 1 first column name', 'Level 1 second column name'])]
但是,我无法根据列数选择列,例如:

df.loc[:, (0, ['Level 1 first column name', 'Level 1 second column name'])]
我得到一个KeyError:0错误

同样的问题:

df.iloc[:, (0, ['Level 1 first column name', 'Level 1 second column name'])]
我得到索引错误:索引器太多

这可能吗? 我在文档中找不到这种选择:

很抱歉没有一个基本完整的代码,这对我来说不容易复制


谢谢

请参见本节。您可以使用
.loc
。您可以像按标签索引一样提供任何选择器,请参阅按标签选择,包括切片、标签列表、标签和布尔索引器。感谢您的回答,但正如我所看到的,本节仅涉及“标签”索引,而我的问题是按列号筛选。。。或者我遗漏了什么?这就是问题所在,你只能用标签来做。我可以根据它们的标签来选择列,这与我的原始邮件中显示的一样完美。因此,如果我理解得很好,使用多重索引时,按数字选择列是不可能的,这是正确的,请参阅一节。您可以使用
.loc
。您可以像按标签索引一样提供任何选择器,请参阅按标签选择,包括切片、标签列表、标签和布尔索引器。感谢您的回答,但正如我所看到的,本节仅涉及“标签”索引,而我的问题是按列号筛选。。。或者我遗漏了什么?这就是问题所在,你只能用标签来做。我可以根据它们的标签来选择列,这与我的原始邮件中显示的一样完美。所以,如果我理解的很好,用多重索引选择列是不可能的,这是正确的