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

按行值筛选pandas数据帧

  •  0
  • R71  · 技术社区  · 6 年前

    我知道如何按列值筛选数据帧:

    import pandas as pd
    import numpy as np
    from numpy.random import randn
    np.random.seed(101)
    df = pd.DataFrame(randn(5,4),index='A B C D E'.split(),columns='W X Y Z'.split())
    print(df)
    # show only rows where 'W' is positive
    # here, the row for 'C' will be deleted, since df['W']['C']<0
    df[df['W']>0]
    

    但如何按行值筛选,例如“b”>0?

    由于df['x']['b']<=0和df['y']['b']<=0,我想删除列x和y。我尝试了以下代码,但它报告了一个错误:

    df.loc[df.loc['B']>0]
    
    1 回复  |  直到 6 年前
        1
  •  2
  •   BENY    6 年前

    应该对列使用筛选器

    df.loc[:,df.loc['B',:]>0]
    Out[67]: 
              W         Z
    A  2.706850  0.503826
    B  0.651118  0.605965
    C -2.018168 -0.589001
    D  0.188695  0.955057
    E  0.190794  0.683509