簡體   English   中英

如何根據給定條件的列值從 DataFrame 中提取 select 行?

[英]How do I select rows from a DataFrame based on column values with given conditions?

如何在 python 中應用規則,如果我想要 A、B = 1,2 和 C、D = 3,4 和 E、F = 5,6 並刪除剩余的

    Type       Set
1    A          1
2    B          2           
3    B          3
4    C          4
5    D          5
6    A          2
7    F          3
8    F          2
9    E          1
10   D          5
11   E          5
12   C          6

我嘗試使用 drop 但它很長

使用多個掩碼怎么樣:

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]

Output:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM