我需要替换dataframe中列值中的子字符串
示例:我在 Dataframe 中有一列"code"(实际上, Dataframe 非常大)
3816R(motor) #I need '3816R'
97224(Eletro)
502812(Defletor)
97252(Defletor)
97525(Eletro)
5725 ( 56)
我用这个列表来替换这些值:
list = ['(motor)', '(Eletro)', '(Defletor)', '(Eletro)', '( 56)']
我试过很多方法,比如:
df['code'] = df['code'].str.replace(list, '')
和regex = True,但是任何方法都可以移除子字符串。
我该怎么做呢?
4条答案
按热度按时间9jyewag01#
您可以尝试regex replace和regex or condition:https://pandas.pydata.org/docs/reference/api/pandas.Series.str.replace.htmlhttps://www.ocpsoft.org/tutorials/regular-expressions/or-in-regex/
regex_str
最终会得到类似于3zwjbxry2#
如果您确定任何行和所有行都遵循提供的格式,则可以使用lambda函数尝试执行以下操作:
wa7juj8i3#
您可以尝试正则表达式匹配方法:https://docs.python.org/3/library/re.html#re.Pattern.match
正则表达式
^(\w+)
的第一部分创建一个捕获组,其中包含遇到括号之前的任意字母或数字,然后group(1)
提取文本。gstyhher4#
str.replace将处理一个字符串而不是字符串列表。您可能会循环使用它
或者,如果您的方括号子字符串在末尾..请在“(“处拆分它,并丢弃生成的其他列..肯定会更快
字符串拆分相当快