PythonPandas数据分析项目教程_时间序列透视表应用


时间序列透视表需先将时间列转为datetime类型,再用pd.Grouper按频率(如'M'、'Q')分组或dt访问器提取年/季等字段,最后用pivot_table聚合;缺失周期需resample或date_range补全。

时间序列透视表在Pandas中不是独立功能,而是通过pd.pivot_table()结合时间列(如日期)的预处理(如dt.yeardt.monthpd.Grouper)实现的。关键在于把时间维度“结构化”为可分组的类别或规则频率,再按需聚合。

pd.Grouper按时间频率自动分组

这是最简洁、最推荐的方式,尤其适合原始数据含DatetimeIndex或已转为datetime类型的列。

  • 先确保时间列为datetime类型:df['date'] = pd.to_datetime(df['date'])
  • 设为索引后使用pd.Grouperdf.set_index('date').pivot_table(values='sales', index=pd.Grouper(freq='M'), columns='region', aggfunc='sum')——按月汇总各地区销售额
  • 支持常用频率:'D'(日)、'W'(周)、'M'(月末)、'MS'(月初)、'Q'(季度)、'A'(年度)

dt访问器提取年/月/日等离散字段

适合需要组合多个时间层级(如“2025年华东Q1”),或时间列不便设索引时。

  • 添加新列:df['year'] = df['date'].dt.yeardf['quarter'] = df['date'].dt.quarter
  • 直接用于pivot_tablepd.pivot_table(df, values='revenue', index='year', columns=['region', 'quarter'], aggfunc='mean')
  • 注意:dt.quarter返回1–4整数,可配合map转为'Q1'/'Q2'等标签提升可读性

处理非规则时间点与缺失周期

原始数据可能跳过某些日期(如节假日无记录),默认透视表不会补全空周期,需手动对齐。

  • resample()先重采样再聚合(适用于时间索引):df.set_index('date').resample('MS').sum().reset_index(),再做透视
  • 或用pd.date_range()生成完整时间序列,reindex()补零:full_idx = pd.date_range(start='2025-01-01', end='2025-12-31', freq='MS'),再groupbyreindex(full_idx, fill_value=0)
  • 透视表本身不插值,补全逻辑应在pivot_table调用前完成

多级时间索引与动态列名

当需同时观察年份和月份、或按工作日/周末分类时,可构建复合时间维度。

  • 新增列组合:df['year_month'] = df['date'].dt.to_period('M')(生成Period类型,天然支持排序和对齐)
  • 或用cut()划分时间区间:df['period'] = pd.cut(df['date'].astype('int64'), bins=[start_ts, mid_ts, end_ts], labels=['H1', 'H2'])
  • 列名可动态生成:columns=pd.Grouper(key='date', freq='2W'),让每两周自动成一列


# python  # pandas  # date  # 访问器  # map  # 数据分析  # 或用  # 这是  # 原始数据  # 多个  # 设为  # 适用于  # 月末  # 应在  # 再用  # 两周 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 网络优化76771 】 【 技术知识130152 】 【 IDC云计算60162 】 【 营销推广131313 】 【 AI优化88182 】 【 百度推广37138 】 【 网站推荐60173 】 【 精选阅读31334


相关推荐: c++的mutex和lock_guard如何使用 互斥锁保护共享资源【多线程】  Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】  如何在网页无标准表格标签时高效提取结构化数据  如何在 PHP 单元测试中正确模拟带方法的图像处理门面(Facade)  英国搜索:多数英国人认为语言搜索是未来搜索  Python字符串处理进阶_切片方法解析【指导】  Win11怎么压缩文件 Win11自带压缩解压功能使用【教程】  微信企业付款回调PHP怎么接收_处理企业付款异步通知数据教程【教程】  windows 10专注助手怎么关闭_windows 10禁用通知提醒功能方法  Win11如何设置开机自动联网 Win11宽带连接自动拨号【步骤】  如何在Golang中处理数据库事务错误_回滚和日志记录  php485在php5.6下能用吗_php485旧版本兼容性问题说明【详解】  c# 在高并发场景下,委托和接口调用的性能对比  Win11怎么设置系统还原_Windows11系统属性保护设置  php下载安装包怎么选_threadsafe与nts版本差异【解答】  c++中的CRTP是什么 c++奇异递归模板模式【进阶】  c++中如何对数组进行排序_c++数组排序算法汇总  c++协程和线程的区别 c++异步编程模型对比【核心】  c++如何连接Redis c++ hiredis库使用教程【指南】  Go 语言标准库为何不提供泛型 Contains 方法?  如何使用Golang reflect检查方法数量_动态分析类型方法  Mac如何与安卓手机传文件_Mac和Android设备互通【必备工具】  mac怎么看硬盘大小_MAC查看磁盘存储空间与文件占用【详解】  如何从 Go 的 map[string]interface{} 中安全获取值  Win11怎样彻底卸载自带应用_Win11彻底卸载自带应用方法【步骤】  Win11怎么退出微软账户_切换Win11为本地账户登录方法【详解】  Win11怎么设置屏保时间_调整Win11屏幕保护等待时间【详解】  如何使用正则表达式提取以编号开头、后接多个注解的逻辑分组块  C++中的协变与逆变是什么?C++函数指针与返回类型详解【类型系统】  Windows10蓝屏SYSTEM_SERVICE_EXCEPTION_Win10驱动冲突排查  Win11任务栏怎么放到顶部_Win11修改任务栏位置方法【详细】  LINUX怎么查看进程_LINUX ps命令查看运行服务  如何高效获取循环末次生成的 NumPy 数组最后一个元素(无需额外循环)  Windows 11无法安全删除U盘提示设备正在使用中怎么办_Windows 11找出占用设备进程  Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤  Win11截图快捷键是什么_Win11自带截图工具使用技巧【汇总】  如何将竖排文本文件转换为横排字符串  Linux怎么修改用户密码_Linux系统passwd命令使用与权限管理【方法】  Win11蓝牙开关不见了怎么办_Win11蓝牙驱动丢失修复教程【方法】  Win10如何更改任务栏高度_Windows10解锁任务栏调整大小  用Python构建微服务架构实践_FastAPI与Django对比详解  Win10如何更改网络连接_Windows10以太网属性IP配置  win11 OneDrive怎么彻底关闭 Win11禁用并卸载OneDrive教程【分享】  Win11怎么自动隐藏任务栏_Win11全屏显示设置【美化】  如何在 Go 项目开发中正确处理本地包导入与远程模块路径的一致性问题  Windows10怎么卸载预装软件_Windows10预装软件卸载步骤【教程】  php下载安装后memory_limit怎么设置_内存限制调整【技巧】  如何使用Golang实现微服务事件驱动_使用消息总线解耦服务  如何高效识别并拦截拼接式恶意域名 spam  c++如何获取map中所有的键_C++遍历键值对提取所有key的方法 

 2026-01-01

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

致胜网络推广营销网


致胜网络推广营销网

致胜网络推广营销网专注海外推广十年,是谷歌推广.Facebook广告全球合作伙伴,我们精英化的技术团队为企业提供谷歌海外推广+外贸网站建设+网站维护运营+Google SEO优化+社交营销为您提供一站式海外营销服务。

 915688610

 17370845950

 915688610@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.