Home > Blockchain >  Delete pandas dataframe row based on multiple condition
Delete pandas dataframe row based on multiple condition

Time:08-13

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 ?

CodePudding user response:

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'])]

CodePudding user response:

You can use:

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

prints:

    col
2  ABH2
5  ABM5
7  ABQ7

CodePudding user response:

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
  • Related