0

0

如何在Python Pandas中按时间间隔分组数据?

PHPz

PHPz

发布时间:2023-08-29 14:13:02

|

1308人浏览过

|

来源于tutorialspoint

转载

如何在python pandas中按时间间隔分组数据?

数据分析日益成为每个行业的重要方面。许多组织高度依赖信息、制定战略决策、预测趋势并了解消费者行为。在这样的环境下,Python 的 Pandas 库作为一个强大的设备应运而生,提供了不同范围的功能来成功地控制、分解和想象信息。这些强大的功能之一包括按时间间隔对数据进行分组。

本文将重点介绍如何使用Pandas按时间间隔对数据进行分组。我们将探讨语法、易于理解的算法、两种不同的方法以及基于这些方法的两个完全可执行的实际代码。

语法

我们将重点关注的方法是Pandas的groupby()函数,特别是它的重采样方法。语法如下:

df.groupby(pd.Grouper(key='date', freq='T')).sum()

在语法中:

立即学习Python免费学习笔记(深入)”;

  • df − 您的DataFrame。

  • groupby(pd.Grouper()) − 用于分组数据的函数。

  • key − 您想要按照的列进行分组。在这里,它是 'date' 列。

  • freq − 时间间隔的频率。('T'代表分钟,'H'代表小时,'D'代表天,等等。)

  • sum() - 聚合函数。

算法

这是按时间间隔对数据进行分组的分步算法 -

  • 导入必要的库,即 Pandas。

  • 加载或创建您的DataFrame。

  • 将日期列转换为datetime对象,如果尚未转换。

  • 使用pd.Grouper在日期列上应用groupby()函数,使用所需的频率。

  • 应用 sum()、mean() 等聚合函数

    谱乐AI
    谱乐AI

    谱乐AI,集成 Suno、Udio 等顶尖AI音乐模型的一站式AI音乐生成平台。

    下载
  • 打印或存储结果。

方法

我们将考虑两种不同的方法 −

方法一:按日频率分组

在这个例子中,我们创建了一个包含一系列日期和值的DataFrame。然后,我们按照每天的频率对数据进行分组,并对每天的值进行求和。

示例

# Import pandas
import pandas as pd

# Create a dataframe
df = pd.DataFrame({
   'date': pd.date_range(start='1/1/2022', periods=100, freq='H'),
   'value': range(100)
})

# Convert 'date' to datetime object, if not already
df['date'] = pd.to_datetime(df['date'])

# Group by daily frequency
daily_df = df.groupby(pd.Grouper(key='date', freq='D')).sum()

print(daily_df)

输出

            value
date             
2022-01-01    276
2022-01-02    852
2022-01-03   1428
2022-01-04   2004
2022-01-05    390

说明

引入 Pandas 库是任何数据操作工作的绝对要求,也是我们在此代码中真正要做的主要事情。利用 pd.DataFrame() 策略是构建 DataFrame 期间的后续阶段。 “日期”和“值”部分组成了此数据帧。 pd.date_range() 函数用于在“日期”列中创建一系列每小时时间戳,而“值”部分仅包含整数范围。 “日期”列是此交互的结果。

尽管我们的“日期”列目前处理日期时间对象的方式不同,但我们逐渐使用 pd.to_datetime() 函数来确保它被更改。此步骤至关重要,因为收集活动的进度取决于该段是否具有日期时间对象的信息类型。

在此之后,为了按每日('D')频率对数据进行分组,我们使用groupby()函数与pd.Grouper()函数相结合。在进行分组后,我们使用sum()函数将属于同一天的所有'value'元素合并为一个总数。

最后,分组的 DataFrame 被写出,显示每天值的总计。

方法 2:按自定义频率分组,例如 15 分钟间隔

示例

# Import pandas
import pandas as pd

# Create a dataframe
df = pd.DataFrame({
   'date': pd.date_range(start='1/1/2022', periods=100, freq='T'),
   'value': range(100)
})

# Convert 'date' to datetime object, if not already
df['date'] = pd.to_datetime(df['date'])

# Group by 15-minute frequency
custom_df = df.groupby(pd.Grouper(key='date', freq='15T')).sum()

print(custom_df)

输出

                     value
date                      
2022-01-01 00:00:00    105
2022-01-01 00:15:00    330
2022-01-01 00:30:00    555
2022-01-01 00:45:00    780
2022-01-01 01:00:00   1005
2022-01-01 01:15:00   1230
2022-01-01 01:30:00    945

说明

下一种技术从与第一种相似的Pandas库的导入开始,然后创建一个DataFrame。这个DataFrame与之前模型中使用的相同;唯一的区别是 'date' 列现在包含以分钟为单位的时间戳。

'date'列应该是一个datetime对象,以使收集活动能够正常工作,而pd.to_datetime()函数确保会发生这种情况。

在本节中,我们使用位于 groupby() 方法内部的 pd.Grouper() 函数,利用 15 分钟(“15T”)的专门频率来执行分组操作。为了聚合每个 15 分钟时间间隔的“值”条目,我们使用 sum() 函数,这与第一种方法中使用的方法相同。

通过显示新分组的DataFrame完成了代码,该DataFrame显示了每个15分钟时间间隔内'value'列的总和。

结论

Pandas的强大功能包括各种数据操作,其中之一是按时间间隔对数据进行分组。通过使用groupby()函数结合pd.Grouper,我们可以根据每日频率或自定义频率有效地对数据进行分段,从而实现高效、灵活的数据分析。

按时间间隔对数据进行分组的功能使分析师和企业能够从数据中提取有意义的见解。无论是计算每天的销售额总和、获取每小时的平均温度,还是计算每 15 分钟的网站点击量,按时间间隔对数据进行分组可以让我们更好地了解数据中随时间变化的趋势、模式和异常值。

请记住,Python 的 Pandas 库是一个强大的数据分析工具。学习如何使用其功能(例如 groupby 方法)可以帮助您成为更高效、更熟练的数据分析师或数据科学家。

python速学教程(入门到精通)
python速学教程(入门到精通)

python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Java 桌面应用开发(JavaFX 实战)
Java 桌面应用开发(JavaFX 实战)

本专题系统讲解 Java 在桌面应用开发领域的实战应用,重点围绕 JavaFX 框架,涵盖界面布局、控件使用、事件处理、FXML、样式美化(CSS)、多线程与UI响应优化,以及桌面应用的打包与发布。通过完整示例项目,帮助学习者掌握 使用 Java 构建现代化、跨平台桌面应用程序的核心能力。

37

2026.01.14

php与html混编教程大全
php与html混编教程大全

本专题整合了php和html混编相关教程,阅读专题下面的文章了解更多详细内容。

19

2026.01.13

PHP 高性能
PHP 高性能

本专题整合了PHP高性能相关教程大全,阅读专题下面的文章了解更多详细内容。

37

2026.01.13

MySQL数据库报错常见问题及解决方法大全
MySQL数据库报错常见问题及解决方法大全

本专题整合了MySQL数据库报错常见问题及解决方法,阅读专题下面的文章了解更多详细内容。

19

2026.01.13

PHP 文件上传
PHP 文件上传

本专题整合了PHP实现文件上传相关教程,阅读专题下面的文章了解更多详细内容。

16

2026.01.13

PHP缓存策略教程大全
PHP缓存策略教程大全

本专题整合了PHP缓存相关教程,阅读专题下面的文章了解更多详细内容。

6

2026.01.13

jQuery 正则表达式相关教程
jQuery 正则表达式相关教程

本专题整合了jQuery正则表达式相关教程大全,阅读专题下面的文章了解更多详细内容。

3

2026.01.13

交互式图表和动态图表教程汇总
交互式图表和动态图表教程汇总

本专题整合了交互式图表和动态图表的相关内容,阅读专题下面的文章了解更多详细内容。

45

2026.01.13

nginx配置文件详细教程
nginx配置文件详细教程

本专题整合了nginx配置文件相关教程详细汇总,阅读专题下面的文章了解更多详细内容。

9

2026.01.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号