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

使用Python replace()函数统一日期格式未达预期,寻求解决方法

统一日期格式的解决方案

先说说你用replace()没生效的核心原因

很多人用replace()后看不到变化,大概率是没把替换结果赋值回原列/变量——字符串操作通常返回新对象,不会直接修改原数据。

具体解决方法

1. 纯字符串替换(保持文本格式)

如果用pandas处理数据集,直接替换分隔符并赋值回原列:

import pandas as pd

# 假设你的数据集是df
df['occurred_at'] = df['occurred_at'].str.replace('-', '/')
# 要是想统一成dd-mm-yyyy就反过来:
# df['occurred_at'] = df['occurred_at'].str.replace('/', '-')

如果是普通字符串列表,用列表推导式处理:

date_strings = ['15/03/2024', '20-04-2024', '01/05/2023']
unified_dates = [d.replace('-', '/') for d in date_strings]

2. 转换为日期类型再输出(更推荐)

把文本日期转成datetime类型,既能统一格式,后续做日期计算也更方便:

# 转换为datetime,pandas会自动识别两种分隔符,dayfirst=True确保日在前的解析正确
df['occurred_at'] = pd.to_datetime(df['occurred_at'], dayfirst=True)
# 转成你想要的统一文本格式,比如dd/mm/yyyy
df['occurred_at'] = df['occurred_at'].dt.strftime('%d/%m/%Y')
# 要dd-mm-yyyy就用'%d-%m-%Y'

3. 排查特殊情况

如果替换后还是有两种格式,先检查数据里有没有特殊分隔符(比如全角的-或/),可以打印唯一值确认:

print(df['occurred_at'].unique())

要是有特殊字符,用正则替换统一处理:

import re
df['occurred_at'] = df['occurred_at'].str.replace(r'[-//-]', '/', regex=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 05:07:20