You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从格式不统一的period列拆分出period_start和period_end?

从period列提取周期起始/结束日期的正确方法

需求

从period列中提取周期起始日期(period_start)和周期结束日期(period_end),原始数据中日期格式可能混用dd-mm-yyyy与dd.mm.yyyy,日期间的连接符可能是带空格的-、不带空格的-或半空格的- ,最终输出需统一日期格式为dd.mm.yyyy。

原始数据与问题

现有period列数据:

28-02-2022 - 30.09.2022    
31.01.2022 - 31.12.2022
28.02.2019 - 30-04-2020
20.01.2019-22.02.2020
19.03.2020- 24.05.2021
13.09.2022-12-10.2022

原代码直接按-分割:

df[['period_start','period_end']]= df['period'].str.split('-',expand=True) 

该方法无法实现需求,因为会错误分割日期内部的-,导致提取结果混乱。

正确解决方案

使用正则表达式提取完整的日期段,再统一日期格式:

# 提取两个日期部分,兼容日期间各种空格+减号的组合
df[['period_start', 'period_end']] = df['period'].str.extract(r'^([\d.-]+)\s*-\s*([\d.-]+)$')

# 将日期中的'-'替换为'.',统一格式
df['period_start'] = df['period_start'].str.replace('-', '.')
df['period_end'] = df['period_end'].str.replace('-', '.')

处理后输出

period_start    period_end
28.02.2022      30.09.2022    
31.01.2022      31.12.2022
28.02.2019      30.04.2020
20.01.2019      22.02.2020
19.03.2020      24.05.2021
13.09.2022      12.10.2022

内容的提问来源于stack exchange,提问作者luc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 13:55:16