时间序列透视表需先将时间列转为datetime类型,再用pd.Grouper按频率(如'M'、'Q')分组或dt访问器提取年/季等字段,最后用pivot_table聚合;缺失周期需resample或date_range补全。
时间序列透视表在Pandas中不是独立功能,而是通过pd.pivot_table()结合时间列(如日期)的预处理(如dt.year、dt.month、pd.Grouper)实现的。关键在于把时间维度“结构化”为可分组的类别或规则频率,再按需聚合。
pd.Grouper按时间频率自动分组这是最简洁、最推荐的方式,尤其适合原始数据含DatetimeIndex或已转为datetime类型的列。
datetime类型:df['date'] = pd.to_datetime(df['date'])
pd.Grouper:df.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.year,df['quarter'] = df['date'].dt.quarter
pivot_table:pd.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'),再groupby后reindex(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
致胜网络推广营销网专注海外推广十年,是谷歌推广.Facebook广告全球合作伙伴,我们精英化的技术团队为企业提供谷歌海外推广+外贸网站建设+网站维护运营+Google SEO优化+社交营销为您提供一站式海外营销服务。