时间序列透视表需先将时间列转为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 】
相关推荐:
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
致胜网络推广营销网专注海外推广十年,是谷歌推广.Facebook广告全球合作伙伴,我们精英化的技术团队为企业提供谷歌海外推广+外贸网站建设+网站维护运营+Google SEO优化+社交营销为您提供一站式海外营销服务。