Pandas技术需求:按指定规则将字符串子串移至末尾
实现DataFrame字符串中子串的移动与格式调整
原始数据
import pandas as pd df1 = pd.DataFrame({'Title': ['WAW_WELCOME AIRPORT-Q3-2022 Facility', 'GVA_NEWREST INFLIGHT-Q3-2022 Cleaning', 'AGP_RENTEVIC-Q3-2022 Office']})
解决方案
利用pandas的str.replace结合正则表达式,精准匹配并重组字符串:
df1['Title'] = df1['Title'].str.replace( r'^(.*?)_(.*?)-(.*)', r'\1-\3/\2', regex=True )
处理结果
执行后DataFrame的Title列会变为:
Title 0 WAW-Q3-2022 Facility/WELCOME AIRPORT 1 GVA-Q3-2022 Cleaning/NEWREST INFLIGHT 2 AGP-Q3-2022 Office/RENTEVIC
正则逻辑说明
^(.*?)_:匹配从字符串开头到第一个_的前缀内容(如WAW),非贪婪模式确保只匹配到第一个下划线(.*?)-:匹配第一个_到第一个-之间的目标子串(如WELCOME AIRPORT),这部分就是需要移到末尾的内容(.*):匹配第一个-之后的所有剩余内容(如Q3-2022 Facility)- 替换模板
\1-\3/\2:将前缀与剩余内容用-连接,再通过/添加移动到末尾的子串,完全符合需求格式
内容的提问来源于stack exchange,提问作者toerag
相关产品推荐
相关产品推荐

