【问题标题】:Select multi-index columns based on multiple second level labels in pandas data frame根据熊猫数据框中的多个二级标签选择多索引列
【发布时间】:2018-04-24 18:46:42
【问题描述】:

我想在使用多索引构造的 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') 

或其小的变体没有成功。任何帮助表示赞赏。谢谢!

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    您可以使用 .loc 的某种组合。在您的示例中,您可以使用以下代码执行此操作:

    idx = pd.IndexSlice
    df.loc[idx[:],idx[:,['two','three']]]
    

    这应该会返回您要查找的内容。这行得通吗?

    【讨论】:

    • 你打败了我。不要忘记关闭“三”的报价!
    • 谢谢 - 编辑它以包括“三”的最后一句话!
    猜你喜欢
    • 2017-10-30
    • 2021-10-14
    • 2014-10-01
    • 2018-05-28
    • 2020-01-12
    • 1970-01-01
    • 2021-12-30
    • 2018-08-05
    相关资源
    最近更新 更多