如何以7位日期(ddmmmyy)为分隔符拆分DataFrame列中的字符串
拆分DataFrame字符串列(以固定格式日期为分隔符)
针对你的需求,直接用pandas的str.extract方法结合正则表达式就能实现,核心是精准匹配固定格式的日期部分:
实现代码
假设你的DataFrame名为df,目标列是Col A,执行以下代码即可拆分出三列:
import pandas as pd # 示例DataFrame df = pd.DataFrame({'Col A': ['ABC29SEP2286AB', 'PQRST29SEP22FUN']}) # 正则提取拆分 df[['ColA', 'ColB', 'ColC']] = df['Col A'].str.extract(r'^(.*?)(\d{2}[A-Z]{3}\d{2})(.*)$') print(df[['ColA', 'ColB', 'ColC']])
正则表达式说明
r'^(.*?)(\d{2}[A-Z]{3}\d{2})(.*)$'各部分含义:
^:匹配字符串开头(.*?):非贪婪匹配日期前的所有字符(对应ColA)(\d{2}[A-Z]{3}\d{2}):精准匹配7位日期格式ddmmmyy:\d{2}:两位数字的日[A-Z]{3}:三位大写字母的月份缩写(如SEP)\d{2}:两位数字的年
(.*):匹配日期后的所有字符(对应ColC)$:匹配字符串结尾
输出结果
执行后会得到你期望的三列数据:
ColA ColB ColC 0 ABC 29SEP22 86AB 1 PQRST 29SEP22 FUN
内容的提问来源于stack exchange,提问作者asimo
相关产品推荐
相关产品推荐

