简体   繁体   中英

Delete pandas dataframe row based on multiple condition

I have the following df:

ABF2
ABG2
ABH2
ABJ3
ABK4
ABM5
ABN6
ABQ7

My goal is to have the following data frame:

ABH2
ABM5
ABQ7

So basically the condition would be multiple:

if third char = H, M, Q or Z

To get the third char value I do as below:

DF.Col_Name[2::2]

Fact is that I don't really know how to apply multiple condition to retrieve the wanted DF. Also, what would be the quickest way to do this?

Select third character with str and test values in Series.isin for test by membership, filter by boolean indexing :

df = DF[DF.Col_Name.str[2].isin(['H','M','Q','Z'])]

You can try .str accessor

out = df[df['col'].str[2].isin(['H', 'M', 'Q', 'Z'])]
print(out)

    col
2  ABH2
5  ABM5
7  ABQ7

You can use:

df.loc[df.col.str[2].str.contains('H|M|Q|Z')]

prints:

    col
2  ABH2
5  ABM5
7  ABQ7

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM