Pandas常用累计、同比、环比等统计方法实践过程

Pandas是Python中一个十分流行的数据分析库,它提供了许多方便易用的工具和功能,可以快速进行数据处理和分析。在实际数据分析中,常常需要统计数据的累计、同比、环比等各种指标,本文将对这些常用统计方法的实践过程进行详细讲解。

累计

累计是指将某个指标的值从某个时间点开始一直累积到当前时间的总和。在Pandas中,可以使用rolling函数和cumsum函数实现对数据的累计计算。

下面是一个示例,我们有一份销售数据,其中包含了每个月的销售额数据:

import pandas as pd

data = {'date': ['2021-01-31', '2021-02-28', '2021-03-31', '2021-04-30', '2021-05-31', '2021-06-30', '2021-07-31'],
        'sales': [1000, 2000, 3000, 4000, 5000, 6000, 7000]}
df = pd.DataFrame(data)
df['date'] = pd.to_datetime(df['date'])
df = df.set_index('date')
print(df)

输出结果为:

            sales
date             
2021-01-31   1000
2021-02-28   2000
2021-03-31   3000
2021-04-30   4000
2021-05-31   5000
2021-06-30   6000
2021-07-31   7000

我们可以使用rolling函数计算3个月的销售额累计:

df['cumulative_sales'] = df['sales'].rolling(window=3).sum()
print(df)

输出结果为:

            sales  cumulative_sales
date                               
2021-01-31   1000               NaN
2021-02-28   2000               NaN
2021-03-31   3000            6000.0
2021-04-30   4000            9000.0
2021-05-31   5000           12000.0
2021-06-30   6000           15000.0
2021-07-31   7000           18000.0

我们可以看到,累计销售额计算的结果从第3个月开始才有意义,因为rolling函数需要至少统计window个数据才能计算。

同比

同比是指将某个指标与去年同期进行比较,通常用于考察某个经济指标或企业指标的增长情况。在Pandas中,可以使用resample函数将数据按照时间进行重采样,然后按照需求进行计算。

下面是一个示例,我们有一份销售数据,其中包含了每天的销售额数据:

import pandas as pd

data = {'date': ['2020-01-01', '2020-01-02', '2020-01-03', '2021-01-01', '2021-01-02', '2021-01-03'],
        'sales': [100, 300, 200, 500, 700, 600]}
df = pd.DataFrame(data)
df['date'] = pd.to_datetime(df['date'])
df = df.set_index('date')
print(df)

输出结果为:

            sales
date             
2020-01-01    100
2020-01-02    300
2020-01-03    200
2021-01-01    500
2021-01-02    700
2021-01-03    600

我们可以使用resample函数将数据按照年进行重采样,然后计算同年销售额的增长率:

year_sales = df.resample('Y').sum()
year_sales['yoy_growth'] = year_sales.pct_change(periods=1)['sales']
print(year_sales)

输出结果为:

            sales  yoy_growth
date                         
2020-12-31    600         NaN
2021-12-31   1800    2.000000

我们可以看到,2021年的销售额比2020年增长了200%。

环比

环比是指将某个指标与上个时间段进行比较,通常用于考察某个经济指标或企业指标的周期性变化。在Pandas中,可以使用shift函数将数据向上或向下移动,然后按照需求进行计算。

下面是一个示例,我们有一份销售数据,其中包含了每天的销售额数据:

import pandas as pd

data = {'date': ['2021-01-01', '2021-01-02', '2021-01-03', '2021-02-01', '2021-02-02', '2021-02-03'],
        'sales': [100, 300, 200, 500, 700, 600]}
df = pd.DataFrame(data)
df['date'] = pd.to_datetime(df['date'])
df = df.set_index('date')
print(df)

输出结果为:

            sales
date             
2021-01-01    100
2021-01-02    300
2021-01-03    200
2021-02-01    500
2021-02-02    700
2021-02-03    600

我们可以使用shift函数将数据向上移动一个时间段,然后计算月销售额的环比增长率:

month_sales = df.resample('M').sum()
month_sales['mom_growth'] = month_sales['sales'].pct_change(periods=1).shift(periods=-1)
print(month_sales)

输出结果为:

            sales  mom_growth
date                         
2021-01-31    600    1.666667
2021-02-28   1800         NaN

我们可以看到,2月份的销售额比1月份增长了166.67%。注意,在计算月销售额的环比增长率时,需要将结果向下移动一个时间段,以避免出现数据泄露问题。

总结

Pandas提供了许多方便易用的工具和函数,可以快速进行数据处理和分析。在统计数据的累计、同比、环比等指标时,可以使用rolling函数和cumsum函数、resample函数和shift函数等函数进行计算。需要根据具体需求选择合适的函数和方法,并注意数据类型和计算结果的合理性。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Pandas常用累计、同比、环比等统计方法实践过程 - Python技术站

(0)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • 如何使用 Python Pandas 更新行和列

    当需要处理和修改数据集合时,Python Pandas(一个数据分析的库)是一个非常有用的工具。其中更新行和列是经常需要处理的部分,下面就详细讲解一下如何使用 Python Pandas 更新行和列: 更新列 我们可以通过以下方法来更新Pandas数据框的列: 方法一:通过赋值方法 要更新单列,请输入数据框名称及要更新的列名称,然后使用赋值方法指定新列。例如…

    python 2023年5月14日
    00
  • Pandas数据离散化原理及实例解析

    Pandas数据离散化原理 首先,我们需要了解什么是数据离散化。数据离散化指的是将连续数值型数据转换成为离散数据的过程,其目的通常是将连续型数据划分为若干个离散的区间,便于数据的处理和分析。 而Pandas提供了非常便利的数据离散化工具——cut函数。cut函数可以根据设定的bins,将一组数据划分为不同的区间,返回一个Series类型的离散化后的数据。 c…

    python 2023年5月14日
    00
  • python-pandas创建Series数据类型的操作

    下面是Python Pandas创建Series数据类型的操作的完整攻略。 创建Series 从列表创建 使用pandas.Series构造函数从列表中创建Series对象。 import pandas as pd data = [10, 20, 30, 40] s = pd.Series(data) print(s) 输出: 0 10 1 20 2 30 …

    python 2023年6月13日
    00
  • Pandas时间数据处理详细教程

    当涉及到数据分析和可视化的时候, 时间数据是一种常见的数据类型。python中的Pandas库提供了强大的时间数据处理工具,可以轻松地解析和操作时间数据。本文将为大家介绍Pandas时间数据处理的详细教程,包括以下内容: Pandas中的时间数据类型 Pandas提供了两种内置的时间数据类型:Timestamp和DatetimeIndex。Timestamp…

    python 2023年5月14日
    00
  • 如何堆叠多个Pandas数据帧

    堆叠多个Pandas数据帧可以使用Pandas库中的concat()函数。该函数可以接受多个数据帧并沿着指定轴将它们堆叠起来。具体步骤如下: 创建数据帧 首先需要创建多个数据帧用于堆叠。这里以两个简单的例子为例,分别创建包含3行2列和2行2列数据的数据帧df1和df2: import pandas as pd df1 = pd.DataFrame({‘X’:…

    python-answer 2023年3月27日
    00
  • 如何在串联Pandas数据帧时添加标识符列

    在Pandas中串联数据帧可以使用concat函数,该函数的axis参数指定了操作方向(行 or 列),若要添加标识符列(也称索引),可以使用keys参数。 以下是完整的攻略: 1.导入Pandas库 import pandas as pd 2.创建多个数据帧 我们可以通过字典进行数据帧的创建,示例代码如下: df1 = pd.DataFrame({‘A’:…

    python-answer 2023年3月27日
    00
  • Python实现把utf-8格式的文件转换成gbk格式的文件

    Python实现把utf-8格式的文件转换成gbk格式的文件攻略 准备工作 在开始编写 Python 代码之前,我们需要先确定一下: 源文件的编码格式 目标文件的编码格式 文件路径 为了方便演示,我们将在以下示例代码中使用 utf-8 编码的源文件并将其转换成 gbk 编码格式的目标文件。 代码实现 # 引入 codecs 模块 import codecs …

    python 2023年5月14日
    00
  • 分享15 个python中的 Scikit-Learn 技能

    下面我会详细讲解“分享15 个python中的 Scikit-Learn 技能”的完整攻略。 分享15个Python中的Scikit-Learn技能 Scikit-Learn是Python中一个非常强大的机器学习库。在本文中,我们将分享15个在Scikit-Learn中应该知道的技术。 1. 数据集载入 Scikit-Learn中自带了一些常用的数据集,可以…

    python 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部