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日

相关文章

  • Pandas Groupby 在组内排序

    请看下面的完整攻略: 1. Pandas Groupby 首先,我们需要先了解Pandas Groupby操作,它是一种按照一定的规则将数据分成几组的操作方式,可以将数据分组进行计算,例如:求和、平均值、中位数等等。 下面是一个示例数据集: import pandas as pd data = { ‘gender’: [‘M’, ‘F’, ‘M’, ‘F’,…

    python-answer 2023年3月27日
    00
  • pandas Dataframe实现批量修改值的方法

    我们来详细讲解如何使用pandas Dataframe实现批量修改值的方法。 1. 前言 pandas是Python数据分析的重要工具之一,它提供了强大的数据结构和数据操作的功能。其中,DataFrame是最重要、最常用的数据结构之一,类似于一个二维数组(或者是一张SQL表),用来存储和处理实际数据。 在实际的数据处理中,我们常常需要对数据进行一些批量的修改…

    python 2023年5月14日
    00
  • 获取Pandas数据框架的某一列值的列表

    获取 Pandas 数据框架的某一列值的列表,可以使用 Pandas 中的 iloc 或 loc 方法,或者直接使用 Pandas Series 中的 tolist 方法。 下面就分别对这三种方法进行详细讲解,并且给出具体实例。 使用 iloc 方法 iloc 是 Pandas 数据框架中用于按位置(index)来获取元素的方法。如果想要获取某一列的值的列表…

    python-answer 2023年3月27日
    00
  • 解决pandas .to_excel不覆盖已有sheet的问题

    当我们使用Pandas的to_excel()方法将DataFrame或者其它格式的数据写入Excel时,有时候需要实现覆盖Excel文件中已存在的sheet的效果。但是,Pandas的to_excel()方法并未提供直接覆盖的方式,因此需要通过一些额外的手段实现这一需求。 下面是具体的攻略: 1. 使用openpyxl库直接进行sheet覆盖 openpyx…

    python 2023年6月13日
    00
  • 在Pandas中把一系列的列表转换为一个系列

    在Pandas中,将一系列的列表转换为一个系列主要可以通过Series类的构造函数实现。Series类是Pandas中最常用的数据结构之一,它有三个主要的构造函数:Series(data, index, dtype),其中参数data表示要创建的Series数据,可以是一个列表、字典或NumPy数组等;参数index为Series数据的索引,即Series的…

    python-answer 2023年3月27日
    00
  • python pandas query的使用方法

    当我们需要从一份数据中查询出符合特定条件的数据时,就可以使用pandasi的query功能了。query功能基于类似SQL的语法,在python中使用起来非常方便。下面是python pandas query的使用方法的完整攻略: 1. 确认数据格式 在使用query方法之前,我们需要确保数据是DataFrame格式。如果数据并不是DataFrame,请先使…

    python 2023年5月14日
    00
  • pandas中df.groupby()方法深入讲解

    接下来我将为您详细讲解“pandas中df.groupby()方法深入讲解”的完整攻略。 介绍 在pandas中,groupby()方法是对数据进行分组分析的重要方法之一。通过groupby()方法,我们可以将数据按照指定的条件进行分组,对每个分组进行聚合操作,最终返回一个新的数据集合。 groupby()的语法格式 groupby()方法的语法格式如下所示…

    python 2023年5月14日
    00
  • 如何在Pandas Groupby中把数据框架的行分组到列表中

    在Pandas中的Groupby操作,可以把数据框架中的行或者列分组,然后对分组后的数据进行聚合,统计分析等操作。但是,在实际的应用场景中,有时候需要把分组后的数据框架中的行分别保存到一个列表中。下面是针对这个需求的详细讲解。 首先,我们可以通过Pandas中的Groupby函数对数据进行分组。例如,下面的例子中我们按照“B”列的值进行分组。 import …

    python-answer 2023年3月27日
    00
合作推广
合作推广
分享本页
返回顶部