python - 根据 Pandas 数据框中的多个二级标签选择多索引列

标签 python pandas

我想在使用多索引构建的 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/

相关文章:

python - GCloud 上传 httplib2.RedirectMissingLocation : Redirected but the response is missing a Location: header

python - 将 unicode 字符编码为 un​​icode 转义序列

python - Pandas groupby对象的聚合

python - 如何在 matplotlib 图中将 xtick 标签年缩写为 2 位数字

Python - Pandas 删除 excel 中的特定行/列

python - 从整个 Python Pandas 数据框中删除美元符号

PYTHON - 搜索目录

python - 将 python 项目部署到 PYPI 时隐藏 API key

python - 在异步循环执行器中完成请求时如何添加请求参数?

python - 在Python中快速选择分层索引的pandas数据中的时间戳范围