#python #pandas #data-manipulation
#python #pandas #манипулирование данными
Вопрос:
Я хотел бы фильтровать строки в df при условии, что строка содержит упоминания о 2 строках в длинном списке строк. У меня возникли проблемы с указанием количества вхождений. Вот мой код до сих пор:
brands = ["a", "b", "c"]
df[df.Column.str.contains('|'.join(brands), re.IGNORECASE, regex=True, na=False)]
Комментарии:
1. df.column.str.isin(brands) сделает свое дело. Способ проверки списка элементов — использовать isin(name_of_list)
Ответ №1:
Возможно, используя count
вместо contains
:
df = pd.DataFrame({'Column':['ab','ABx','axy']})
df[df.Column.str.count('|'.join(brands), re.IGNORECASE, na=False)>=2]
Вывод:
Column
0 ab
1 ABx
Ответ №2:
Вот пример проверки. Это то, что вы пытаетесь сделать?
import pandas as pd
df = pd.DataFrame({'Test':['a','b','cat','dog']})
print (df)
df['check']= df['Test'].isin(['a','b','c'])
print (df)
Это приведет к:
Test check
0 a True
1 b True
2 cat False
3 dog False