如何将pd.to_datetime转换后的时间戳还原为%m%d%Y %H%M%S格式?
解决pandas日期转换后格式还原问题
我懂你的困扰——用pd.to_datetime转换后,原本%m%d%Y %H%M%S(月日年 时分秒)格式的日期变成了默认的%Y%m%d %H%M%S显示格式。其实核心原因是:pd.to_datetime生成的是datetime64类型的时间戳对象,它本身并不存储字符串格式,显示时会用pandas默认的日期格式。要还原回原格式,你需要把datetime对象再转回指定格式的字符串,具体步骤如下:
步骤1:正确解析原格式日期
首先确保你在转换时指定了原格式,避免pandas自动解析出错:
import pandas as pd # 示例DataFrame df = pd.DataFrame({'date_str': ['10052023 143025', '03122022 091500']}) # 解析原格式字符串为datetime对象,必须指定format参数 df['datetime'] = pd.to_datetime(df['date_str'], format='%m%d%Y %H%M%S')
步骤2:转回原格式字符串
用dt.strftime()方法将datetime对象格式化为你需要的字符串格式:
# 还原为原格式的字符串列 df['original_format'] = df['datetime'].dt.strftime('%m%d%Y %H%M%S')
执行后,original_format列就会和你最初的date_str列格式完全一致了:
| date_str | datetime | original_format |
|---|---|---|
| 10052023 143025 | 2023-10-05 14:30:25 | 10052023 143025 |
| 03122022 091500 | 2022-03-12 09:15:00 | 03122022 091500 |
注意事项
- 如果你的需求是进行时间计算,请保留
datetime列(datetime类型);如果只是需要输出/展示原格式的日期字符串,直接使用original_format列即可。 - 若要将结果保存到文件(如CSV),直接保存包含
original_format列的DataFrame,就能保证输出格式符合要求。
内容的提问来源于stack exchange,提问作者Tanmoy
相关产品推荐
相关产品推荐

