首页 > 解决方案 > 动态删除单词的一部分

问题描述

我有由两部分组成的单词,x其中y可以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 的值如何,它都能得到预期的输出。

标签: pythonpandas

解决方案


尝试使用:

df['Name'] = df['Name'].str.extract('([A-Z].*?\w+(?=[A-Z]){2})').str.strip().fillna(df['Name'])
print(df)

输出:

     Name
0   Apple
1  Banana
2   Mango
3   Mango

推荐阅读