首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Pandas时间序列数据聚合全攻略:实战与代码解析

让我们学习如何在Pandas中进行时间序列数据聚合。

准备工作

我们需要安装Pandas和Numpy包,可以使用以下代码进行安装:

数据驱动决策的核心技能,从现在开始,申请截止至7月15日,秋季即刻启程。

pip install pandas numpy

安装好相关包后,就可以正式进入教程了。

时间序列数据聚合

时间序列是一类特殊的数据,它们按顺序采集并存储在特定的时间点。这类数据集常用于描述某一事物的变化过程,比如股价、月度销售数据等。时间序列数据的核心特征在于其按时间顺序排列。

聚合是一种汇总或合并多个数据集以生成单一值集合的方法。它通常用于通过简明信息来理解更大的数据集。

作为一种数据集,时间序列同样可以进行聚合操作。让我们通过一个示例数据集来实际操作。

import pandas as pd

import numpy as np

np.random.seed(42)

date_rng = pd.date_range(start='2021-01-01', end='2023-12-31', freq='D')

df = pd.DataFrame({

  'Date': date_rng,

  'Sales': np.random.randint(100, 300, size=len(date_rng)),

  'Profit': np.random.randint(1000, 5000, size=len(date_rng)),

  'Rating': np.random.uniform(1, 10, size=len(date_rng))

})

有了这个示例数据集后,我们就可以尝试进行时间序列聚合了。在Pandas中,可以使用resample或groupby方法进行聚合。

首先介绍resample方法。该方法根据时间序列将数据按指定周期进行聚合。要使用resample,需要先将日期设置为索引。

df.set_index('Date', inplace=True)

接下来,我们可以用resample来进行时间序列聚合。例如,下面代码实现了按年聚合:

df.resample('Y').mean()

输出结果:

              Sales       Profit    Rating

Date                                      

2021-12-31  203.410959  3105.854795  5.507386

2022-12-31  203.153425  2962.819178  5.366746

2023-12-31  194.657534  2989.123288  5.503049

你可以根据需要更改聚合周期,例如:

D(每日)

W(每周)

M(每月)

Q(每季度)

A(每年)

另外,也可以用groupby方法进行时间序列聚合:

df.groupby(df.index.year).mean()

输出结果:

        Sales       Profit    Rating

Date                                

2021  203.410959  3105.854795  5.507386

2022  203.153425  2962.819178  5.366746

2023  194.657534  2989.123288  5.503049

我们还可以为不同的列指定不同的聚合方法:

df.resample('Y').agg({

  'Sales': 'sum',

  'Profit': 'mean',

  'Rating': 'max'

})

输出:

         Sales       Profit    Rating

Date                                  

2021-12-31  74245  3105.854795  9.959324

2022-12-31  74151  2962.819178  9.931739

2023-12-31  71050  2989.123288  9.973703

以上就是时间序列聚合的全部内容。掌握时间序列聚合将为你的数据分析能力加分!

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OKe4pE5pARH9mgSY7DHkqhaw0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券