Python Pandas:如何删除字符串中_004_及其之前的内容?
DataFrame字符串截取方案
我拥有包含如下内容的DataFrame:
524_004_SoEx 67hh_004_Mont yh88_004_BurS 1243gt_004_Pogr_st需要删除包括
_004_在内的所有前面内容,最终得到:SoEx Mont BurS Pogr_st尝试使用
str.split方法但未成功,请问最简单的实现方法是什么?
下面提供几种简单可行的实现方式,选顺手的用就行:
方法一:正确使用str.split拆分
你之前用str.split没成功应该是没选对拆分后的取值逻辑,直接按_004_拆分后取最后一段即可:
df['目标列名'] = df['目标列名'].str.split('_004_').str[-1]
原理很直白:把每个字符串按_004_切成前后两段,直接取后面那段就是你要的结果。
方法二:正则提取目标内容
用str.extract直接匹配并提取_004_之后的所有内容,逻辑更直观:
df['目标列名'] = df['目标列名'].str.extract(r'_004_(.*)')[0]
正则表达式里,_004_是固定匹配的分隔符,(.*)用来捕获它后面的所有字符,提取出来就是最终需要的内容。
方法三:替换掉前面的冗余内容
用str.replace把从开头到_004_的所有内容替换为空字符串,一步到位:
df['目标列名'] = df['目标列名'].str.replace(r'.*_004_', '', regex=True)
这里.*_004_会匹配字符串开头到_004_的全部内容,替换为空后就剩下后面的目标文本。
内容的提问来源于stack exchange,提问作者Ujin Mitin
相关产品推荐
相关产品推荐

