动态删除单词的一部分

拉胡尔·阿加瓦尔

我有其由两个部分组成词语xy其中x可以采取许多值&y可以是空白或可以取的值的固定数目。

x就像: Apple, Banana, Mango, .... many more

y像: Buy, Sell, Good

的话是: AppleBuy, BananaGood, Mango, MangoSell

输入df

Name
AppleBuy
BananaGood
Mango
MangoSell
Apple Buy

预期DF

Name
Apple
Banana
Mango
Mango
Apple

码:

df['Name'] = df['Name'].str.replace('AppleBuy','Apple').str.replace('BananaGood','Banana')

问题

上面的代码可以正常工作,但问题是如果明天有新的x出现,则上面的代码将失败。

我可以有一些动态的东西来获得预期的输出,而与x的值无关。

耶斯列尔

使用Series.str.replaceSeries.str.extract

y = ['Buy','Sell','Good']
df['Name'] = df['Name'].str.replace('|'.join(y), '').str.strip()
print (df)
     Name
0   Apple
1  Banana
2   Mango
3   Mango

要么:

x = ['Apple','Banana','Mango']
df['Name'] = df['Name'].str.extract('(' + '|'.join(x) + ')', expand=False)

print (df)
     Name
0   Apple
1  Banana
2   Mango
3   Mango

如果要使用大写分隔符的值:

df['Name'] = df['Name'].str.extract('([A-Z][a-z]*)')

print (df)
     Name
0   Apple
1  Banana
2   Mango
3   Mango

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章