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

8. Pandas 日期与时间序列数据处理

Pandas 日期与时间序列数据处理

时间序列数据广泛应用于 金融交易、销售分析、交通流量、气象研究 等领域。Pandas 提供了强大的日期与时间处理能力,包括日期类型转换、日期属性提取、时间索引设置、重采样与滚动计算等功能。本文通过实例演示这些操作,帮助你快速掌握时间序列分析的基础技能。


1. 日期转换(.to_datetime)

在数据集中,日期常以字符串或数值形式存在,需要先转换为 Pandas 的日期时间类型:

import pandas as pddata = {"日期": ["2025-01-01", "2025-01-05", "2025-01-10", "2025-01-15"],"销售额": [100, 150, 200, 130]
}df = pd.DataFrame(data)df['日期'] = pd.to_datetime(df['日期'])  # 转换为 datetime 类型
print(df.dtypes)
print(df)
日期     datetime64[ns]
销售额             int64
dtype: object日期  销售额
0 2025-01-01  100
1 2025-01-05  150
2 2025-01-10  200
3 2025-01-15  130

2. 提取日期属性(.dt)

利用 .dt 可以直接提取日期的年、月、日、周、季度等信息:

df['年'] = df['日期'].dt.year
df['月'] = df['日期'].dt.month
df['日'] = df['日期'].dt.day
df['周'] = df['日期'].dt.isocalendar().week
df['季度'] = df['日期'].dt.quarterprint(df)
        日期  销售额   年  月  日 周  季度
0 2025-01-01  100  2025  1   1  1   1
1 2025-01-05  150  2025  1   5  1   1
2 2025-01-10  200  2025  1  10  2   1
3 2025-01-15  130  2025  1  15  3   1

dt.strftime(“%Y-%m-%d”) 可以灵活格式化日期,例如生成 “2025年1月5日” 这样的字符串。


3. 时间索引与重采样(resample)

设置日期列为索引后,可对时间序列进行重采样和聚合分析。

df.set_index('日期', inplace=True)
print(df)
            销售    年  月  日 周  季度
日期                                 
2025-01-01  100  2025  1   1  1   1
2025-01-05  150  2025  1   5  1   1
2025-01-10  200  2025  1  10  2   1
2025-01-15  130  2025  1  15  3   1

3.1 重采样与聚合

# 按周求销售额总和
weekly_sales = df['销售额'].resample('W').sum()
print("按周汇总销售额:\n", weekly_sales)# 按月求平均销售额
monthly_sales = df['销售额'].resample('M').mean()
print("\n按月平均销售额:\n", monthly_sales)
按周汇总销售额:日期
2025-01-05    250
2025-01-12    200
2025-01-19    130
Freq: W-SUN, Name: 销售额, dtype: int64按月平均销售额:日期
2025-01-31    145.0
Freq: ME, Name: 销售额, dtype: float64

常用重采样频率:

  • D:天
  • W:周
  • M:月
  • Q:季度
  • Y:年
  • H:小时
  • Tmin:分钟

3.2 填充缺失时间

重采样可能会出现缺失值,可以用前向/后向填充:

# 按天重采样,缺失值前向填充
daily_sales = df['销售额'].resample('D').sum().fillna(method='ffill')
print("按天重采样并填充缺失值:\n", daily_sales)
按天重采样并填充缺失值:日期
2025-01-01    100
2025-01-02      0
2025-01-03      0
2025-01-04      0
2025-01-05    150
2025-01-06      0
2025-01-07      0
2025-01-08      0
2025-01-09      0
2025-01-10    200
2025-01-11      0
2025-01-12      0
2025-01-13      0
2025-01-14      0
2025-01-15    130
Freq: D, Name: 销售额, dtype: int64

4. 时间差与滚动计算

4.1 时间差计算

df1 = pd.DataFrame(df['销售额'])df1['前一日销售额'] = df['销售额'].shift(1)
df1['销售额变化'] = df['销售额'] - df['前一日销售额']
print(df1)
          销售额 前一日销售额 销售额变化
日期                            
2025-01-01  100     NaN    NaN
2025-01-05  150   100.0   50.0
2025-01-10  200   150.0   50.0
2025-01-15  130   200.0  -70.0

shift() 可对比任意滞后期,例如 shift(7) 可用于 同比/环比分析

4.2 滚动窗口计算

# 3日移动平均
df['3日均值'] = df['销售额'].rolling(window=3).mean()
print(df)
          销售额 前一日销售额 销售额变化 3日均值
日期                                   
2025-01-01  100     NaN    NaN    NaN
2025-01-05  150   100.0   50.0    NaN
2025-01-10  200   150.0   50.0  150.0
2025-01-15  130   200.0  -70.0  160.0

常见滚动函数:mean()sum()max()min()std()


5. 小结

  • 日期转换pd.to_datetime 将字符串/数值转换为日期类型。
  • 日期属性提取.dt 可获取年、月、日、周、季度等信息,支持格式化输出。
  • 时间索引与重采样:通过 resample 可按日、周、月等周期聚合数据,并支持缺失值填充。
  • 时间差与滚动计算:可计算增量或移动均值,辅助趋势分析与预测。

时间序列处理是 金融市场预测、零售趋势分析、交通流量监测、气象建模 等领域的核心技能。熟练掌握这些方法,能让数据分析更高效、更有洞察力。

http://www.dtcms.com/a/442159.html

相关文章:

  • 免费网站模板做零食的网站有哪些
  • 从零开始的C++学习生活 2:类和对象(上)
  • 家纺营销型网站网站建设服务费怎么记账
  • css其他选择器(精细修饰)
  • 一般设计网站页面用什么软件做引擎网站
  • 生成式 AI 重构内容创作:从辅助工具到智能工厂
  • 华为S5720配置telnet远程
  • 面试复盘:哔哩哔哩、蔚来、字节跳动、小红书面试与总结
  • Your ViT is Secretly an Image Segmentation Model
  • 海口网站建设运营网站开发公司选择
  • 日语学习-日语知识点小记-进阶-JLPT-N1阶段应用练习(4):语法 +考え方17+2022年7月N1
  • RAG:解锁大语言模型新能力的关键钥匙
  • 广州网站建设海珠信科网站建设推广方法
  • Oracle Linux 7.8 静默安装 Oracle 11g R2 单机 ASM 详细教程
  • 旅游公司网站建设方案网站的布局结构三种
  • Django ORM 无法通过 `ForeignKey` 自动关联,而是需要 **根据父模型中的某个字段(比如 ID)去查询子模型**。
  • 吉林省建设厅信息网站网站建设的评价
  • 分布式专题——26.5 一台新机器进行Web页面请求的历程
  • 怎么让别人看到自己做的网站万维网网站301重定向怎么做
  • css样式学习记录
  • 网站服务器关闭网站数据库地址是什么
  • 每日一个C语言知识:C程序结构
  • Amazon RDS:云端数据库管理的革新之路
  • wordpress登录可见站内seo是什么意思
  • STM32简单的串口Bootloader入门
  • 360网站怎么做2核4g做网站
  • 从 “手工作坊” 到 “智能工厂”:2025 年 AI 原生应用重构内容创作产业
  • 做网站平台难在哪里网页翻译不见了
  • Flutter技术栈深度解析:从架构设计到性能优化
  • 学做湘菜的视频网站中国建设企业银行登录网站