【问题标题】:How do I select rows from a DataFrame based on column values with given conditions?如何根据给定条件的列值从 DataFrame 中选择行?
【发布时间】:2022-11-22 22:26:42
【问题描述】:

如何在 python 中应用规则,如果我想要 A、B = 1,2 和 C、D = 3,4 并放下剩下的

    Type       Set
1    A          1
2    B          2           
3    B          3
4    C          4
5    D          5
6    A          2
7    C          3
8    D          2
9    B          1

我尝试使用 drop 但它很长

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    使用多个掩码怎么样:

    m1 = df['Type'].isin(['A', 'B'])
    m2 = df['Type'].isin(['C', 'D'])
    
    m3 = df['Set'].isin([1, 2])
    m4 = df['Set'].isin([3, 4])
    
    out = df.loc[(m1&m3)|(m2&m4)]
    

    或者:

    m1 = df['Type'].isin(['A', 'B'])
    m2 = df['Type'].isin(['C', 'D'])
    
    m3 = df.loc[m1, 'Set'].isin([1, 2]).reindex(df.index, fill_value=False)
    m4 = df.loc[m2, 'Set'].isin([3, 4])
    
    out = df.loc[m3 | m4]
    

    输出:

      Type  Set
    1    A    1
    2    B    2
    4    C    4
    6    A    2
    7    C    3
    9    B    1
    

    【讨论】:

      猜你喜欢
      • 2013-06-08
      相关资源
      最近更新 更多