我有一列产品的名称和信息,我需要从名称中删除代码,每个代码以四个或更多的零开始,一些名称有四个零或更多的重量,一些与名称连接,如下面的例子:
data = {
'Name' : ['ANOA 250g 00004689', 'ANOA 10000g 00000059884', '80%c asjw 150000001568 ', 'Shivangi000000478761'],
}
testdf = pd.DataFrame(data)
正确的输出应为:
results = {
'Name' : ['ANOA 250g', 'ANOA 10000g', '80%c asjw 150000001568 ', 'Shivangi'],
}
results = pd.DataFrame(results)
3条答案
按热度按时间igetnqfo1#
你可以通过代码模式的开始来分割字符串,这是由正则表达式
(?<!\d)0{4,}
表示的。这个模式消耗四个0
s,它们前面没有任何数字。在分割字符串之后,获取第一个片段,并且str.strip
去掉可能的尾随空格注意,这适用于代码 * 总是 * 在字符串末尾的情况。
tez616oj2#
使用带有
str.replace
的正则表达式:或者,类似于@HaleemurAli,但匹配项为负
输出量:
regex1 demo
regex2 demo
ltqd579y3#
试着在每个空格处拆分它,并检查每个项目是否有0000,如: