代码之家  ›  专栏  ›  技术社区  ›  Pyd

如何在Pandas布尔约简中获得结果为True的列名

  •  4
  • Pyd  · 技术社区  · 8 年前

    我有一个df,

         0               1              2          A
    -0.740485792    -0.299824912    0.169113705    1
     1.120120949    -0.62580736     0.013757667    2
    -0.685112999     0.439492717    -0.484524907   3
    

    我正在尝试获取所有值都大于0的列名,

    我试过了 (df > 0).all()

    Out[47]: 
     0    False
     1    False
     2    False
     A     True
     dtype: bool
    

    如何只获取正确的列名,

    我的预期输出为“A”,提前感谢。

    关于sort\u index()的问题2

     df2 = pd.DataFrame({"A":[3,2,1]}, index=[2,1,0])
    
     Out[395]:
        A
    2   3
    1   2
    0   1
    
    df2.sort_index(axis=1)
    
        A
    2   3
    1   2
    0   1
    

    预期输出为,

        A
    0   3
    1   2
    2   1
    
    1 回复  |  直到 8 年前
        1
  •  6
  •   jezrael    8 年前

    使用 boolean indexing 具有 df.columns :

    c = df.columns[(df > 0).all()]
    print (c)
    Index(['A'], dtype='object')
    
    推荐文章