Вы можете сделать это так:
df.columns = ['A', 'B', 'C', 'D']
df:
A B C D
0 cat waverly way foo 10.0
1 cat smokey st moo 9.7
2 rabbit rapid ave foo 6.6
3 rabbit far blvd too 3.2
.
filter = ['foo,moo']
# used transform to concat all the values in column 'C' for a given 'A'
df['C'] = df[['A', 'B', 'C', 'D']].groupby(by=['A'])['C'].transform(lambda x: ','.join(x))
Modified df:
A B C D
0 cat waverly way foo,moo 10.0
1 cat smokey st foo,moo 9.7
2 rabbit rapid ave foo,too 6.6
3 rabbit far blvd foo,too 3.2
.
# applied negative mask to filter values with foo,moo in 'C'
df1 = df.loc[~df['C'].isin(filter)].reset_index(drop=True)
print(df1)
Вывод:
A B C D
0 rabbit rapid ave foo,too 6.6
1 rabbit far blvd foo,too 3.2