pandas 日期列解析

616 字
3 分钟
pandas 日期列解析

pandas 日期列解析#

日期列是很多分析的时间轴。只要日期解析错,按月统计、时间筛选、滑动窗口都会跟着错。

实际数据里常见的问题包括格式混用、空字符串、Excel 序列号、中文日期和时区信息。我的做法是先解析,再统计失败样本。

基础解析#

df["date"] = pd.to_datetime(df["date"], errors="coerce")
print(df["date"].isna().sum())
print(df.loc[df["date"].isna(), "date"].head())

errors="coerce" 适合排查,因为它不会让程序直接中断,而是把失败值变成 NaT。但后面必须检查失败数量。

格式混用时怎么处理#

如果一列里同时有 2026-05-15、2026/5/15、2026年5月15日,可以先统一替换中文字符和分隔符,再解析。

s = (
df["date"].astype(str)
.str.strip()
.str.replace("年", "-", regex=False)
.str.replace("月", "-", regex=False)
.str.replace("日", "", regex=False)
)
df["date"] = pd.to_datetime(s, errors="coerce")

按时间分析前的检查#

  • 最小日期和最大日期是否合理。

  • 是否出现大量未来日期或 1970 年。

  • 时间列是否有重复或缺失。

  • 是否需要先设置为索引再 resample。

按月统计示例#

monthly = (
df.dropna(subset=["date"])
.set_index("date")
.resample("ME")["amount"]
.sum()
)
print(monthly.tail())

实战复盘#

复用《pandas 日期列解析》时,不要只复制代码块。先把自己的字段名、数据口径和异常规则写出来,再替换示例里的列名。pandas 的函数很通用,但业务字段的含义不能自动迁移。

每次处理完成后,我会抽样看几条原始记录和处理后记录。尤其是日期、金额、分类字段,机器统计和肉眼抽查要一起做,才能发现格式看似正常但含义错位的问题。

这类文章后续可以继续补充真实小表格作为输入示例。输入、处理、输出三者都出现,教程才不会变成只解释 API。

最小验收样例#

验收《pandas 日期列解析》时,我会手写一个三到五行的小 DataFrame:一行正常数据,一行缺失或异常数据,一行边界数据。先让示例在小表上跑通,再换成完整数据集。

小表的好处是结果可以人工计算。只要人工结果和 pandas 输出对不上,就说明代码逻辑或字段口径还没想清楚。这个过程比直接在大表上调试更可靠。

小结#

日期列解析要先暴露失败值,再做时间统计。不要让 NaT 和错误年份悄悄进入分析结果。

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

pandas 日期列解析
https://blog.tjcheng.cn/posts/backfill/2026-05-15/pandas-date-column-parse/
作者
TengJinCheng
发布于
2026-05-15
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
TengJinCheng
Hello, I'm Teng.
公告
欢迎来到TengJinCheng工作铺!
音乐
封面

音乐

暂未播放

0:000:00
暂无歌词
分类
标签
站点统计
文章
157
分类
7
标签
114
总字数
109,939
运行时长
0 天
最后活动
0 天前
站点信息
构建平台
Local
博客版本
Firefly v6.13.4
文章许可
CC BY-NC-SA 4.0

文章目录