Python 基于列表中的部分匹配字符串筛选数据帧

Python 基于列表中的部分匹配字符串筛选数据帧,python,pandas,Python,Pandas,我有一个包含很多类别的数据框架。这里列出了其中的一些 Bank (0827) ОСП (0283) Банк ВТБ (ПАО) (0822) ОСИП_ПЕНСЫ (0260) АО Тинькофф Банк (0755) ПАО Совкомбанк 我想根据字符串匹配过滤数据

我有一个包含很多类别的数据框架。这里列出了其中的一些

Bank 

(0827) ОСП                                  
(0283) Банк ВТБ (ПАО)                       
(0822) ОСИП_ПЕНСЫ                           
(0260) АО Тинькофф Банк                     
(0755) ПАО Совкомбанк
我想根据字符串匹配过滤数据帧。我不想传递整行的名称,我想传递类似于['ССббббббббббббббб。其预期结果是:

(0260) АО Тинькофф Банк                     
(0755) ПАО Совкомбанк

我尝试了df=df[df[column\u name].isinvalues],但没有成功。

如果您只想传递名称,您必须清理银行列


df[df['Bank'].str.split'.str.get1.isinvalues]

如果只想传递名称,则必须清理Bank列

df[df['Bank'].str.split'.str.get1.isinvalues]

.isin将检查精确匹配。您要查找的是.str.contains:

您可以在str.contains中使用自定义正则表达式。。。搜索您想要的任何内容。

.isin将检查是否完全匹配。您要查找的是.str.contains:


您可以在str.contains中使用自定义正则表达式。。。搜索任何您想要的内容。

您甚至不需要在.contains的模式周围加上括号,大多数情况下,该模式用于具有多个可能值的提取+1.@Alolz这是真的,但拥有它不会有什么坏处,如果搜索词是一个短语而不是一个单词,它会很方便。不,我不认为括号不会改变模式。但它们将导致一个警告:此模式具有匹配组。要实际获取组,请使用str.extract。@ALollz可能我用错了:P,我知道警告,但至少对我的案例有效。@TYZ这太完美了,谢谢你。你甚至不需要在.contains的模式周围加括号,主要是用于具有多个可能值的extract+1.@Alolz这是真的,但拥有它不会有什么坏处,如果搜索词是一个短语而不是一个单词,它会很方便。不,我不认为括号不会改变模式。但它们将导致一个警告:此模式具有匹配组。若要实际获取组,请使用str.extract。@ALollz可能我用错了:P,我知道警告,但至少对我的案例有效。@TYZ这很完美,谢谢
match_strs =  ['Совкомбанк', 'Тинькофф']
df = df[df[column_name].str.contains("(" + "|".join(match_strs) + ")")]