python - 动态删除单词的一部分
问题描述
我有由两部分组成的单词,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 的值如何,它都能得到预期的输出。
解决方案
尝试使用:
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
推荐阅读
- ajax - 如果部分预订日,则将 partial_book_days 更改为 fully_booked_days
- csv - Spark CSV GZip 到 Parquet?
- java - 递归选择排序(Java Eclipse Neon 2)
- java - 获取图像并在gridview中显示
- python-3.x - 使用 ndarray、prod 和 cumprod python
- android - 滚动列表视图后如何在按钮上设置焦点(设置可见性)
- angular - 路由器将编码导航到地址栏中的 %3d angular5
- microsoft-graph-api - 无法在 OneNote 页面中进行两项更改
- mariadb - REGEXP_SUBSTR 返回所有匹配项(mariaDB)
- asp.net - 将标签模板字段值传递给 vb.net 函数