我想在使用多索引构建的 pandas 数据框中选择列。特别是,我想根据多个二级标签来选择列。一个例子:
在下面的 pandas 数据框中:
bar bar baz baz foo foo qux
one two three two one three one
A 0.895717 0.805244 -1.206412 2.565646 1.431256 1.340309 -1.170299
B 0.410835 0.813850 0.132003 -0.827317 -0.076467 -1.187678 1.130127
C -1.413681 1.607920 1.024180 0.569605 0.875906 -2.211372 0.974466
无论第一级标签是什么,如何选择第二级标签为“三”或“二”的所有列?请记住,这只是一个示例数据框,所以只选择所有不是“一个”的标签对我来说不是一个选项。
我试过了
df_b = df.xs(['two','three'],level='second')
或其小变体没有成功。任何帮助表示赞赏。谢谢!
最佳答案
您可以使用 .loc 的某种组合。在您的示例中,您可以使用以下代码执行此操作:
idx = pd.IndexSlice
df.loc[idx[:],idx[:,['two','three']]]
这应该会返回您要查找的内容。这行得通吗?
关于python - 根据 Pandas 数据框中的多个二级标签选择多索引列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50008851/