如果包含子字符串,则同时替换多个字符串

2024-09-24 02:14:10 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我想同时将包含“arm”、“hay”和“arm”字符的整个字符串替换为一个名为“amerian”的字符串。(例如:亚美尼亚语->亚美尼亚语、海耶伦语->亚美尼亚语等)

这就是我累了

> df[col] = df[col].apply(lambda x : 'Armenian' if ["Arm","hay","arm",] in x else x)

我得到了

TypeError: 'in ' requires string as left operand, not list>


Tags: lambda字符串indfifcol字符else
3条回答

我试过了:

df['col'] = list(map(lambda x : 'Armenian' if any(item in x for item in ["Arm","hay","arm"]) else x, df['col']))

您可以使用:

df.loc[df['col'].str.contains('(?i)hay|arm'), 'col'] = 'Armenian'

这将检查列中是否在列中的任何位置不敏感地包含“hay”或“arm”大小写,并返回一个布尔数组,用于从原始数据帧中筛选行,并将其分配给找到匹配项的列“amerian”。在

import numpy as np
df[col] = np.where(df[col].str.contains(("Arm","hay","arm")), "Armenian", df[col])

这就行了

相关问题 更多 >