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


相关推荐: 如何提升Golang JSON序列化性能_Golang JSON编码效率优化方法  Go语言中CookieJar的持久化机制解析:内存存储与自定义持久化方案  Python与OpenAI接口集成实战_生成式AI应用场景解析  如何自定义Windows终端的默认配置文件?(PowerShell/CMD)  Python抽象类与接口设计_规范说明【指导】  本地php环境打开php文件直接下载_浏览器解析php为下载的修复方法【解答】  Win11怎么更改鼠标指针方案_Windows11自定义鼠标光标样式与大小  Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置  php8.4匿名类怎么用_php8.4匿名类创建与使用场景【介绍】  如何在Golang中使用replace替换模块_指定本地或远程路径  c# 如何深拷贝和浅拷贝  php增删改查报错1054怎么办_字段名错误排查修复【解答】  如何使用Golang实现微服务状态监控_Golang服务运行状态采集方法  Win11如何设置系统语言_Win11系统语言切换教程【攻略】  如何高效获取循环末次生成的 NumPy 数组最后一个元素(无需额外循环)  Mac的Time Machine怎么用_Mac系统备份与数据恢复【完整指南】  如何在Golang中处理模块冲突_解决依赖版本不兼容问题  Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件  php8.4如何调用com组件_php8.4windows下com操作指南【教程】  Linux怎么修改用户密码_Linux系统passwd命令使用与权限管理【方法】  Win10怎样清理C盘爱奇艺缓存_Win10清理爱奇艺缓存步骤【步骤】  如何在 Python 中将 ISO 8601 时间戳转换为日期并计算日期差值  c++中如何使用虚函数实现多态_c++多态性实现原理  Windows电脑如何截屏?(四种快捷方法)  Mac如何开启夜览模式_Mac护眼模式设置与定时  Python网络异常模拟_测试说明【指导】  Golang如何实现基本的用户注册_Golang用户注册表单处理示例  Windows11怎样开启游戏模式_Windows11游戏模式开启攻略【方法】  Win11怎么设置默认输入法 Win11固定中文输入法【步骤】  Win11如何设置文件权限 Win11 NTFS文件夹所有权与安全设置【高级】  如何在 Go 中高效缓存与分发网络视频流  LINUX怎么设置系统语言_LINUX修改中文环境  Windows11怎么自定义任务栏_Windows11任务栏自定义教程【步骤】  Win10 BitLocker加密教程 Win10给磁盘驱动器上锁【安全】  Python对象比较与排序_集合使用说明【指导】  c++如何判断文件是否存在_c++ filesystem库用法  LINUX如何删除用户和用户组_Linux userdel和groupdel命令用法【系统管理】  Python安全爬虫设计_IP代理池与验证码识别策略解析  php能跑在stm32上吗_php在stm32微控制器上的移植方法【介绍】  Win11 C盘满了怎么清理 Win11磁盘清理和存储感知使用教程【新手必看】  Windows11如何设置专注助手_Windows11专注助手使用攻略【技巧】  如何在 Go 中判断变量是否为函数类型  Win11怎么关闭右下角弹窗_Win11拦截系统通知广告【设置】  LINUX如何开放防火墙端口_Linux firewalld与iptables开放端口命令【安全配置】  Mac如何彻底清理浏览器缓存?(Safari与Chrome)  如何在Golang中处理模块包路径变化_Golang包重命名与导入方法  如何使用Golang匿名函数_快速定义临时函数逻辑  Windows10系统怎么查看系统版本_Win10运行winver命令查询  Win11怎么更改文件夹图标_自定义Win11文件夹外观样式【详解】  Windows如何查看和管理已安装的字体?(字体文件夹) 

 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.