若字段包含列表中的任何字符串,则向数据集添加标志



我有一个数据集,正在其中进行字符串搜索。我有一个字符串列表要搜索,如果出现其中任何一个,则标志应设置为"Y"。

例如。。。

#Import key libraries
import pandas as pd
import numpy as np
data = {'Strings': ['Profit Sharing', 'Defined Benefit', 'Defined Contribution', '401(K)']}
df=pd.DataFrame (data, columns=['Strings'])
df['Flag']=np.nan
StringList=['MONEY PURCHASE', 'MPP', 'DEFINED CONTRIBUTION', 'DEFINED CONT', 'SELF', 'KEOGH', 'KEOUGH', 'PROFIT', 'PSP', 'P-S PLAN', 'PS PL', 'SAVINGS', 'AGE-WEIGHTED', 'AGE WEIGHTED', 'NEW COMPARABILITY', 'THRIFT', 'STOCK BONUS', '401K', 'K401', '401(K)', '401 (K)', '4401-PW', '401PW', '401-K', '408K', '408 K', 'K408', '408(K)', '408 (K)', '408-K']
StringPattern="|".join(StringList)
df['Flag']=df['Strings'].str.contains(StringPattern, case=False)
print(df)

任何带有"401"的字符串都不会被拾取。它看起来不像是一根绳子。我该怎么解决?

您需要转义特殊的正则表达式符号。

https://docs.python.org/3/library/re.html

将字符串列表中的"401(K("更改为"401\(K\("。

最新更新