当前位置: 首页 > news >正文

Python数据分析:时间序列数据分析

📊【Python时间序列全攻略】从入门到平稳性检验,一文搞定!

💡金融、经济、气象、物联网……只要涉及“随时间变化的数据”,就绕不开时间序列分析
今天,我们就用 Python 带你系统掌握时间序列的核心技能!🔥


🕒 1. 日期与时间:一切的起点

在 Python 中,处理时间数据主要靠标准库datetime模块,它提供了几种关键类型:

类型

说明

date

年-月-日(如 2026-02-07)📅

time

时:分:秒(如 17:52:30)⏰

datetime

日期 + 时间(最常用!)🕒

timedelta

两个时间点之间的差值(用于加减计算)⏳

tzinfo

时区信息(高级用法)🌍

小技巧

  • datetime.now()获取当前时间

  • timedelta(days=3)轻松实现“三天后”或“一周前”

from datetime import datetime, timedelta now = datetime.now() three_days_later = now + timedelta(days=3)

🔁 2. 字符串 ↔ 时间:格式转换是关键!

现实数据常以字符串形式存在(如"2026/02/07"),我们需要转换为datetime才能分析。

✅ 字符串 → datetime

datetime.strptime("2026-02-07", "%Y-%m-%d")

✅ datetime → 字符串

stamp.strftime("%Y年%m月%d日") # 输出:2026年02月07日

📌常用格式代码速查表

代码

含义

示例

%Y

四位年份

2026

%m

两位月份

02

%d

两位日期

07

%H

24小时制

17

%M

分钟

52

%S

30

%F

等价于%Y-%m-%d

2026-02-07

⚡ 在 Pandas 中更简单:直接用pd.to_datetime()一键转换整列!


📈 3. Pandas 时间序列:让数据“活”起来!

Pandas 是时间序列分析的利器!它的SeriesDataFrame若以时间作为索引,就是时间序列

import pandas as pd dates = pd.date_range('2026-01-01', periods=5, freq='D') ts = pd.Series([1, 2, 3, 4, 5], index=dates)

🔍 索引与切片超方便!

ts['2026-01-02'] # 单日查询 ts['2026-01'] # 整月切片 ts['2026'] # 整年数据

✨ 自动对齐:不同时间序列做运算时,Pandas 会自动按日期对齐,不怕错位!


🗓️ 4. 日期范围 & 频率:生成你的专属时间轴!

pd.date_range()轻松创建固定频率的时间序列:

# 每月最后一天,共12个月 pd.date_range('2026-01-01', periods=12, freq='M') # 每小时一次,从现在开始 pd.date_range(start='2026-02-07 00:00', end='2026-02-08 00:00', freq='H')

🔄 常见频率别名(Frequency Aliases):

别名

含义

'D'

'M'

月末

'MS'

月初

'H'

小时

'T'

'min'

分钟

'S'


➡️ 5. 时间移位(Shift):预测与滞后分析必备!

shift(n)可将数据整体向前或向后移动n步,不改变索引

ts.shift(1) # 滞后一期(昨天的值放到今天) ts.shift(-1) # 超前一期(明天的值放到今天)

💡 若加上freq参数,则同时移动索引

ts.shift(2, freq='D') # 数据+索引都往后移2天

这在构建“昨日销量 vs 今日销量”等特征时超级实用!


📅 6. 时期(Period):不只是时间点,更是时间段!

Period表示一个时间区间,比如“2026年2月”、“2026年第1季度”。

p = pd.Period('2026-02', freq='M') # 代表整个2月
  • pd.period_range()创建时期序列

  • asfreq()转换频率(如月 → 季)

  • to_period()将时间戳索引转为时期索引

🌟 适用于财务报表、月度汇总等“区间型”分析场景!


📉📈 7. 重采样(Resample):降采样 & 升采样

重采样 = 改变时间频率,是时间序列预处理的核心操作!

🔽 降采样(高频 → 低频)

比如:日数据 → 月数据

daily_data.resample('M').mean() # 每月平均值

⚠️ 注意参数:

  • closed='right':区间哪边闭合?

  • label='right':标签打在哪一端?

🔼 升采样(低频 → 高频)

比如:月数据 → 日数据

此时会出现缺失值,需插值填充:

monthly_data.resample('D').ffill() # 向前填充 monthly_data.resample('D').interpolate() # 插值

🧪 8. 平稳性检验:建模前的关键一步!

大多数时间序列模型(如 ARIMA)要求数据平稳——即均值、方差不随时间变化。

三种检验方法:

1️⃣ 时序图检验 👀
  • 绘制时间序列图

  • 若无明显趋势或周期波动 → 可能平稳

data['Total'].plot(figsize=(12,6))
2️⃣ 自相关图(ACF)检验 📐
  • 平稳序列:自相关系数快速衰减至0

  • 非平稳序列:缓慢衰减

from statsmodels.graphics.tsaplots import plot_acf plot_acf(data['Total'])
3️⃣ ADF 检验(最严谨!)🧪
  • 原假设 H₀:序列非平稳(有单位根)

  • 若 p-value < 0.05→ 拒绝 H₀ → 序列平稳!

from statsmodels.tsa.stattools import adfuller result = adfuller(data['Total']) print(f"ADF Statistic: {result[0]:.4f}") print(f"p-value: {result[1]:.4f}")

✅ 实践建议:先看图,再跑 ADF,双保险!


🎯 总结:时间序列分析全景图

graph LR A[原始数据] --> B{是否为时间序列?} B -->|是| C[转换为 datetime 索引] C --> D[重采样/频率转换] D --> E[移位/滞后特征] E --> F[平稳性检验] F -->|平稳| G[建模预测 ARIMA/SARIMA] F -->|非平稳| H[差分/对数变换] H --> F

🔔关注我们,不错过每一篇硬核又易懂的数据科学干货!
💬留言区互动:你在工作中遇到过哪些时间序列难题?欢迎分享!


http://www.jsqmd.com/news/387302/

相关文章:

  • 鱼类异常状态检测数据集VOC+YOLO格式3895张2类别
  • 算法学习日记 | 双指针
  • Spring注解方式整合Mybatis
  • @Import整合第三方框架原理
  • 使用 Google Earth Engine 快速导出 Copernicus GLO-30 和 ASTER GDEM 高程数据
  • 现代控制理论(1)—— 概论
  • 05]delphi10.3中richedit中删除线
  • 关于学习技术栈的思考
  • 实测才敢推!自考必备的降AI率平台 —— 千笔·专业降AIGC智能体
  • 【Python】从0到1完成轻量级接口测试工具:基于Python+FastAPI+Pytest
  • 适用于室内和室外的集成式LED PCBA解决方案
  • 基础入门 Flutter for OpenHarmony:battery_plus 电池状态监控详解
  • ArcPy 脚本:批量生成郑州市 1990-2019 年空间分析结果(核密度、热点、平均中心、标准差椭圆)
  • 这次终于选对!圈粉无数的一键生成论文工具 —— 千笔AI
  • 2026年阿里巴巴/1688平台开户代运营权威评测:深圳昊客网络 脱颖而出 - 深圳昊客网络
  • WAC集团推出WAC建筑品牌,以先进、技术驱动的解决方案赋能照明设计师
  • 使用 ArcPy 批量裁剪建筑面矢量:根据城区边界提取城市建筑数据
  • 2026最新!千笔,专科生专属降AI神器
  • 毕业论文神器!千笔,备受喜爱的AI论文平台
  • Windows Powershell 打开即闪退 | Windows PowerShell 内部错误。加载托管的 Windows Powershell 失败,返回错误 80131018。
  • 强烈安利!千笔,口碑爆棚的一键生成论文工具
  • 服务器运维(四十)日服务器linux-ps分析工具—东方仙盟
  • 用 Python 批量提取 1990–2019 年高层建筑并按城市导出 Shapefile
  • delphi10.3中UpDown1使用
  • 【信息科学与工程学】【智能交通】第五篇 自动驾驶02
  • 看完就会:AI论文平台,千笔 VS 灵感风暴AI,本科生写作神器!
  • vue3+nodejs校园活动管理系统的设计与实现
  • 人工智能之核心基础 机器学习 第十八章 经典实战项目 - 实践
  • vue3+nodejs气象数据共享平台 天气预报数据共享系统
  • axure: 下拉菜单