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

在 pandas.Grouper() 中,freq 参数用于指定时间频率,它定义了如何对时间序列数据进行分组。freq 的值可以是多种时间单位

pandas.Grouper() 中,freq 参数用于指定时间频率,它定义了如何对时间序列数据进行分组。freq 的值可以是多种时间单位,具体包括以下几类:

常见的时间频率 (freq) 取值:

1. 日频率(Daily)
  • 'D':按天分组。
2. 周频率(Weekly)
  • 'W':按周分组,默认从星期天开始。
  • 'W-MON', 'W-TUE', …, 'W-SUN':按周分组,指定周的起始日期(比如 'W-MON' 表示从周一开始的周)。
3. 月频率(Monthly)
  • 'M':按月分组,通常指从每月的最后一天开始。
  • 'MS':按月开始分组,即从每月的第一天开始。
  • 'B':按工作日(月内的工作日)分组。
4. 季节频率(Quarterly)
  • 'Q':按季度分组,通常指每年四个季度的最后一天。
  • 'QS':按季度开始分组,即从每个季度的第一天开始。
  • 'Q-JAN', 'Q-FEB', …, 'Q-DEC':按指定的季度开始时间分组。
5. 年频率(Yearly)
  • 'A''Y':按年分组,通常指每年的最后一天。
  • 'AS''YS':按年开始分组,即从每年的第一天开始。
  • 'A-JAN', 'A-FEB', …, 'A-DEC':按指定月份开始的年度分组。
6. 小时、分钟、秒(Hourly, Minute, Second)
  • 'H':按小时分组。
  • 'T''min':按分钟分组。
  • 'S':按秒分组。
  • 'L''ms':按毫秒分组。
  • 'U''us':按微秒分组。
7. 自定义频率(Custom Frequencies)
  • 'B':按工作日分组(排除周末)。
  • 'CB':按日历工作日分组(排除周六和周日,包含假期)。
  • 'WOM-1MON''WOM-2MON':按周的某个位置分组(例如第一个周一,第二个周一等)。
8. 其他一些特殊频率(Extra Frequencies)
  • 'BM':按工作日的月度频率分组。
  • 'CBM':按日历工作日的月度频率分组。
  • 'MS':按月的开始日分组。
  • 'Q-JAN':按季度的开始月份分组。

举例:

import pandas as pd

# 创建一个时间序列数据
data = {
    'date': pd.date_range('2023-01-01', periods=10, freq='D'),
    'value': [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
}
df = pd.DataFrame(data)

# 按月分组(freq='M')
monthly_group = df.groupby(pd.Grouper(key='date', freq='M')).sum()
print(monthly_group)

# 按季度分组(freq='Q')
quarterly_group = df.groupby(pd.Grouper(key='date', freq='Q')).sum()
print(quarterly_group)

# 按年分组(freq='A')
yearly_group = df.groupby(pd.Grouper(key='date', freq='A')).sum()
print(yearly_group)

# 按周分组(freq='W')
weekly_group = df.groupby(pd.Grouper(key='date', freq='W')).sum()
print(weekly_group)

# 按小时分组(freq='H')
hourly_group = df.groupby(pd.Grouper(key='date', freq='H')).sum()
print(hourly_group)

常用频率总结:

freq描述
'D'按天分组
'W'按周分组
'M'按月分组
'Q'按季度分组
'A'按年分组
'H'按小时分组
'T''min'按分钟分组
'S'按秒分组
'B'按工作日分组
'CB'按日历工作日分组
'MS'按月的第一天分组
'QS'按季度的第一天分组
'A-JAN'每年从1月开始
'Q-JAN'按每年的1月季度开始分组

选择频率时的注意点:

  • freq 参数适用于时间数据列(datetime64 类型),因此输入的数据必须是时间序列数据。
  • 可以通过 pd.date_range() 创建包含时间戳的 DataFrame,并用不同的 freq 值来演示不同的分组方式。

通过这些不同的频率,你可以轻松地对时间序列数据进行按天、周、月、季度、年等不同粒度的聚合和分析,帮助在实际项目中进行更精细的数据分析。


http://www.kler.cn/a/465987.html

相关文章:

  • 用户界面的UML建模10
  • Redis的缓存雪崩,缓存击穿,缓存穿透
  • PHP 使用集合 处理复杂数据 提升开发效率
  • 如何在 VSCode 中配置 C++ 开发环境:详细教程
  • 使用npm 插件[mmdc]将.mmd时序图转换为图片
  • Java SpringBoot使用Apache POI导入导出Excel文件
  • 发现一个可用的免费docker镜像源
  • AI智能生成PPT,告别手工操作的新选择
  • 安卓11 SysteUI添加按钮以及下拉状态栏的色温调节按钮
  • MATLAB画柱状图
  • 【Spring学习】为什么Spring中的IOC(控制反转)能够降低耦合性(解耦)?
  • springboot和vue项目前后端交互
  • 竞品分析对于ASO优化的重要性
  • MySql---进阶篇(六)---SQL优化
  • 在 SQL 中获取第m个开始的n条记录方法汇总
  • 亚远景-ASPICE与ISO 26262:汽车软件开发与功能安全的协同作用
  • GitHub Actions 工作流编写指南
  • Mysql8主从复制(兼容低高版本)
  • 【AI部署】腾讯云每月1w小时免费GPU获取
  • DBSCAN 聚类 和 gmm 聚类 测试
  • Gitlab-runner 修改默认的builds_dir并使用custom_build_dir配置
  • Milvus×合邦电力:向量数据库如何提升15%电价预测精度
  • ASP.NET Core 中的响应压缩中间件
  • TensorFlow DAY1:基础语法
  • C++ 中如何优雅地返回一个递归闭包函数?
  • 聆听音乐 1.5.9 | 畅听全网音乐,支持无损音质下载