醋醋百科网

Good Luck To You!

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

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

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言