章节导读
pandas 提供完整的时间序列处理体系,核心包括 时间戳(Timestamp)、时间差(Timedelta)、周期(Period) 三类时间对象,以及 时间索引(DatetimeIndex / TimedeltaIndex / PeriodIndex) 和基于时间索引的 重采样、窗口计算、时区处理 等操作。
本章包含:
- 9.9 时间戳 Timestamp – 单个时间点的表示、属性与运算
- 9.10 时间差 Timedelta – 持续时间的表示、属性与运算
- 9.11 周期 Period – 固定频率时间段的表示与转换
- 9.12 时间索引与切片 – 三种时间索引的创建、属性与切片
- 9.5 时间序列操作 – 重采样、滚动窗口、扩展窗口、指数加权移动、时区处理
时间对象总览
| 对象 | 类型 | 说明 | 典型场景 |
|---|---|---|---|
Timestamp | 时间点 | 纳秒精度,类似 Python datetime | 事件日志、交易时间 |
Timedelta | 时间差 | 持续时间,可正可负 | 时长、间隔 |
Period | 时间段 | 固定频率区间(月/季/年) | 财务报表、月度统计 |
DatetimeIndex | 时间戳索引 | 时间序列的行索引 | 按时间切片、重采样 |
TimedeltaIndex | 时间差索引 | 以时间差为索引 | 相对时间分析 |
PeriodIndex | 周期索引 | 以周期为索引 | 按月/季聚合 |
时间序列分析流程
graph LR A[原始时间数据] --> B[解析为时间类型] B --> C[设置时间索引] C --> D[时间切片/筛选] D --> E[重采样/窗口计算] E --> F[时区处理] F --> G[可视化与输出]
常用频率代码
| 代码 | 说明 | 备注 |
|---|---|---|
'D' | 日历日 | 每天 |
'B' | 工作日 | 周一至周五 |
'W' | 每周 | 默认周日结束 |
'ME' | 月末 | pandas 2.2+ 推荐 |
'MS' | 月初 | 每月第一天 |
'QE' | 季末 | 3/31, 6/30… |
'YE' | 年末 | 12/31 |
'h' | 每小时 | 小时频率 |
'min' / 'T' | 每分钟 | 分钟频率 |
'S' | 每秒 | 秒频率 |
pandas 2.2+ 频率代码更新
部分旧代码已重命名:
'M'→'ME'(月末),'Q'→'QE'(季末),'Y'→'YE'(年末)。旧代码仍可使用但会提示更新。