Я пытаюсь показать строки, содержащие набор ключевых слов.
Таблица выглядит следующим образом
Col0 col1 col2 col3
1 LD AN CC
2 AB LD SS BB
1 AA LD AD CC
3 LD AC NN
2 FF UH BB
Мне нужно отфильтровать эту таблицу, где строка содержит буксировочные струны (LD и AB) ИЛИ (LD и AD) ИЛИ (A C)
Итак, я получаю этот результат
Col0 col1 col2 col3
2 AB LD SS BB
1 AA LD AD CC
3 LD AC NN
Я пытался
count = df.groupby(['Col0','Col3'])['Col3'].transform('size')
s = df['Col1'] + ' ---- ' + df['Col2']
#The condition function
df = df[count.isin([1,2]) (s.str.contains('LD') & s.str.contains('AB')) | (s.str.contains('LD') & s.str.contains('AD')) | (s.str.contains('LD') & s.str.contains('AC'))]
Это явно не сработало, поэтому я попытался использовать функцию if:
if s.str.contains('L/D') & s.str.contains('AB'):
df = df[count.eq(2)]
elif s.str.contains('L/D') & s.str.contains('AD'):
df = df[count.eq(2)]
elif s.str.contains('L/D') & s.str.contains('AC'):
df = df[count.eq(2)]
и использовать это
if 'L/D' & 'AB' in s:
df = df[count.eq(2)]
elif 'L/D' & 'AD' in s:
df = df[count.eq(2)]
elif 'L/D' & 'AC' in s:
df = df[count.eq(2)]
Они не работали
Так что можно кто-нибудь помогите с тем, что я сделал не так