我有其由两个部分组成词语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的值无关。
使用Series.str.replace
或Series.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] 删除。
我来说两句