I have a dataframe that contains several columns and I want to drop values based on two criterias: First: Column name should full match my criteria Second: Column description should partially match another criteria
If both are true, I should remove the row.
Example: I want to drop every row that contains Blue or Green on the first column and contains "abc" on the second one.
| Name | Description |
|---|---|
| Blue | abcdefg |
| Red | hrqt |
| Blue | abcde |
| Green | abcd |
| Black | jfg |
Using python v.3.0 or more to solve it.
CodePudding user response:
df.drop(((df["Name"]=="Blue") | (df["Name"]=="Green")) & (df["Description"].str.contains("abc")))
CodePudding user response:
You can set two conditions before using df.loc.
cond1 = df.Name.isin(['Blue','Green'])
cond2 = df.Description.str.contains('abc')
dfd.loc[~(cond1 & cond2)]
Name Description
1 Red hrqt
4 Black jfg
