Python pandas如何将日期转换为%d/%m/%Y, %H:%M:%S格式
Pandas 转换固定格式日期字段为目标格式的操作方案
核心前置说明
你遇到的原始日期样例为Wed Feb 24 12:06:14 +0000 2021,对应pandas可识别的固定解析模板为%a %b %d %H:%M:%S %z %Y。处理大数据集时,必须显式指定固定解析格式,不能依赖pandas自动推断格式——自动推断会逐行扫描判定,处理耗时会提升数十倍,还可能出现解析误差。
具体操作步骤
- 读取数据集阶段直接做日期解析(最优性能方案)
pandas 2.0+ 支持在文件读取阶段传入固定日期格式参数,跳过后续逐行转换的开销,适合超大规模数据集:import pandas as pd # 替换为你实际的文件路径、日期列名 df = pd.read_csv( "large_data_file.csv", parse_dates=["date_column"], date_format="%a %b %d %H:%M:%S %z %Y" ) - 已加载数据集的批量日期转换
如果数据已经读入内存,用pd.to_datetime指定格式转换即可,注意对带时区的原始时间统一转UTC基准,避免时间偏移误差:# 替换为你实际的日期列名 df["date_column"] = pd.to_datetime( df["date_column"], format="%a %b %d %H:%M:%S %z %Y", utc=True, errors="coerce" # 遇到格式异常的行自动设为空值,不中断整体处理 ) - 转换为目标展示格式
把已解析为datetime类型的列,通过字符串格式化输出为要求的%d/%m/%Y, %H:%M:%S格式:df["formatted_date"] = df["date_column"].dt.strftime("%d/%m/%Y, %H:%M:%S")
大数据集处理注意事项
- 不要用字符串切片、正则匹配的方式切割原始日期字符串后拼格式,这类操作的内存占用和耗时是内置datetime解析的5~10倍。
- 如果数据集规模超过单文件内存承载上限,可通过
chunksize参数分块读取处理,每个块重复套用上述解析逻辑即可,不会出现性能问题。 - 若需要保留原始列,可把格式化结果写入新列,不要覆盖原始解析好的datetime列,后续做时间筛选、聚合操作时可以直接复用datetime类型的列,不需要重复解析。
内容的提问来源于stack exchange,提问作者Blessing Bribiesca
相关产品推荐
相关产品推荐

