python - 动态删除单词的一部分

标签 python pandas

我的单词由两部分组成:xy,其中 x 可以采用多个值 & y 可以为空,也可以采用固定数量的值。

x 就像:苹果、香蕉、芒果......还有更多

y 就像:买、卖、好

单词是: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

关于python - 动态删除单词的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55352070/

相关文章:

python - Jupyter导入错误: No module named

python - OpenCV/Python:彩条的数量级

python - 如何在 Django v1.11 中正确定义中间件类?

python - 未找到模块但有 init.py

python - 如何使用 Gdk3 从文件创建 PixBuf?

python - 读取带有嵌套字典的文本文件并转换为 csv

mongodb - 从 mongodb 文档创建矩阵

python - Pandas Python 上的 Group by 和 where 查询

python - 将对象转换为 float 会失去太多精度 - Pandas

python - Pandas 拆解专栏