我有一个字符串,其中仅包含若干子字符串之一。我想检查它包含哪个子字符串并获取与之相关联的值。这就是为什么我会使用字典进行此操作。
例如:
在这种情况下,应该返回0。
背景是我有一个带有
示例结果:
例如:
string_to_check = 'TEST13-872B-A22E'
substrings = {'TEST': 0, 'WORLD': 1, 'CORONA':2}
在这种情况下,应该返回0。
背景是我有一个带有
string_to_check
列的pandas DataFrame(df
),该列包含这些字符串。根据每行包含的子字符串,我想要将一个值分配给数据框的新列的相应行。示例结果:
string_to_check result
'TEST13-872B-A22E' 0
'CORONA1-241-22E' 2
'TEST32-33A-442' 0
'WORLD4-BB2-A343' 1
我想我可以使用类似的东西
def check_string(string_to_check):
for stri, val in zip(substrings.keys, substrings.values):
if stri in string_to_check:
return val
结合使用apply方法。但目前我感觉自己太笨了,无法自行拼凑。
编辑:
好的,我想我已经自己解决了这个问题:
def check_string(string_to_check):
for stri, val in zip(substrings.keys(), substrings.values()):
if stri in string_to_check:
return val
df['result'] = df['string_to_check'].apply(check_string)
但我很乐意看到更短、更易读、更符合Python风格的方法建议。