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中进行邓恩氏检验

    邓恩氏检验(Dunn’s test)是用于在多重比较中执行配对差异测量的一种非参数统计方法。在Python中,我们可以使用scipy库中的posthoc_dunn()函数来进行邓恩氏检验。 以下是使用posthoc_dunn()函数进行邓恩氏检验的步骤: 导入相关的库: from scipy.stats import friedmanchisquare fr…

    python-answer 2023年3月27日
    00
  • 在Python中把 CSV 文件读成一个列表

    在 Python 中,我们可以使用内置的 csv 模块来读取 CSV 文件。csv 模块提供了一种读取和写入 CSV 文件的方便方法,并且可以自动将 CSV 文件中的每一行转换为列表。 下面是将 CSV 文件读取为一个列表的步骤: 导入 csv 模块 import csv 打开 CSV 文件 with open(‘filename.csv’, ‘r’) as…

    python-answer 2023年3月27日
    00
  • 对pandas的dataframe绘图并保存的实现方法

    对于pandas的dataframe绘图并保存,可以通过matplotlib库完成,具体步骤如下: 步骤一:导入相关库 首先需要导入需要的库,其中pandas库用于数据处理,matplotlib库用于绘图,os库用于操作系统相关的操作(例如文件读写)。 import pandas as pd import matplotlib.pyplot as plt i…

    python 2023年5月14日
    00
  • mybatis group by substr函数传参报错的解决

    当使用MyBatis进行SQL查询时,如果在查询语句中使用了group by和substr函数,有时可能会遇到传参报错的问题。本文将详细讲解这一问题的解决方法。 问题现象 在MyBatis的select语句中使用了group by和substr函数,例如: select substring(name, 1, 3) as short_name, count(*…

    python 2023年5月14日
    00
  • php使用fputcsv实现大数据的导出操作详解

    OK,下面就为您详细讲解“php使用fputcsv实现大数据的导出操作详解”。 什么是fputcsv函数 fputcsv函数是PHP语言的一个内置函数,它的作用就是将一个数组写入到一个已经打开的文件中,并且按照CSV格式进行格式化。CSV格式是一种非常常见的电子表格格式,它使用逗号作为字段分隔符,使用双引号作为特殊字符。fputcsv函数可以在写入CSV文件…

    python 2023年5月14日
    00
  • 用Pandas Groupby模块创建非层次化的列

    Pandas是Python语言中经常使用的数据处理库,其中Groupby模块用于对数据集进行分组操作,可以通过Groupby模块创建非层次化的列来更好地呈现数据,以下是详细讲解: 1.导入Pandas模块 在使用Pandas Groupby模块之前,需要先导入相关模块,可通过以下方式进行导入: import pandas as pd 2.创建数据集 在对数据…

    python-answer 2023年3月27日
    00
  • Pandas DataFrame中loc()和iloc()的区别

    首先,需要说明的是,Pandas是一个Python数据分析库,提供高性能、易于使用的数据结构和数据分析工具。其中的DataFrame是一种二维表,类似于Excel中的一个工作表,可以方便地处理和分析数据。而loc()和iloc()分别是DataFrame中两个重要的索引方法,本文将详细讲解二者的区别。 相同点 在讲解二者的区别之前,先来说说它们的相同点。lo…

    python-answer 2023年3月27日
    00
  • 如何使用Pandas从Excel文件中提取日期

    下面是一个使用Pandas从Excel文件中提取日期的完整攻略: 1.导入Pandas库 首先,我们需要导入Pandas库以便在Python代码中使用其相关函数。可以使用以下代码导入: import pandas as pd 2.读取Excel文件 接下来,我们需要使用Pandas的read_excel()函数读取Excel文件。可以使用以下代码读取名为”e…

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