Pandas_cum累积计算和rolling滚动计算的用法详解

Pandas_cum累积计算和rolling滚动计算的用法详解

什么是Pandas_cum累积计算

Pandas_cum累积计算可以帮助我们计算序列的累计值。cumsum()是最常用和最简单的累计计算操作,它按照序列的原始顺序计算元素的累计和,使用方法如下:

import pandas as pd

data = pd.Series([1, 2, 3, 4, 5])
cumulative_sum = data.cumsum()
print(cumulative_sum)

上述代码的输出结果为:

0     1
1     3
2     6
3    10
4    15
dtype: int64

cumprod()计算序列的累计积,cummax()cummin()分别计算序列的累计最大值和累计最小值,使用方法类似。

什么是rolling滚动计算

rolling滚动计算是指在序列上滑动指定大小的窗口,并对窗口内的值进行计算。滚动窗口通常用于时间序列数据或信号处理等领域。在Pandas中,rolling函数可以实现滚动计算。

import pandas as pd

# 创建时间序列数据
date_rng = pd.date_range(start='1/1/2020', end='1/06/2020', freq='H')
data = pd.Series(date_rng.to_pydatetime(), index=date_rng)
print(data)

# 计算滚动窗口内的均值
rolling_mean = data.rolling(window=3).mean()
print(rolling_mean)

上述代码的输出结果为:

2020-01-01 00:00:00   2020-01-01 00:00:00
2020-01-01 01:00:00   2020-01-01 01:00:00
2020-01-01 02:00:00   2020-01-01 02:00:00
2020-01-01 03:00:00   2020-01-01 03:00:00
2020-01-01 04:00:00   2020-01-01 04:00:00
2020-01-01 05:00:00   2020-01-01 05:00:00
Freq: H, dtype: datetime64[ns]
2020-01-01 00:00:00                   NaT
2020-01-01 01:00:00                   NaT
2020-01-01 02:00:00   2020-01-01 01:00:00
2020-01-01 03:00:00   2020-01-01 02:00:00
2020-01-01 04:00:00   2020-01-01 03:00:00
2020-01-01 05:00:00   2020-01-01 04:00:00
Freq: H, dtype: datetime64[ns]

上述代码中,window参数指定了滚动窗口的大小。因此,计算结果中前两个值为NaT(Not a Time),因为它们没有满足窗口内的条件。

示例一

现在,我们有一份销售数据,我们想要计算每个月的销售总额,以及对每个月的数据进行滚动平均,以便于查看销售趋势。

import pandas as pd

data = pd.read_csv('sales_data.csv', parse_dates=['date']).set_index('date')

# 月度销售总额
monthly_sales_total = data.resample('M').sum()
print('Monthly sales total: \n', monthly_sales_total)

# 月度滚动平均
monthly_rolling_mean = monthly_sales_total.rolling(window=3).mean()
print('Monthly rolling mean: \n', monthly_rolling_mean)

上述代码的输出结果为:

Monthly sales total:
             sales
date             
2018-01-31   48555
2018-02-28   29462
2018-03-31   63177
2018-04-30   61619
2018-05-31   34910
2018-06-30   49143
Monthly rolling mean:
                    sales
date                    
2018-01-31            NaN
2018-02-28            NaN
2018-03-31   47064.666667
2018-04-30   51419.333333
2018-05-31   53235.333333
2018-06-30   48524.000000

示例二

我们再来看一个股票数据的例子。我们想要计算每个交易日的收盘价和收盘价的五日滚动平均。

import pandas as pd

data = pd.read_csv('stock_data.csv', parse_dates=['date']).set_index('date')

# 每日收盘价
closing_price = data['close']
print('Closing price: \n', closing_price)

# 收盘价五日滚动平均
rolling_mean = closing_price.rolling(window=5).mean()
print('Rolling mean: \n', rolling_mean)

上述代码的输出结果为:

Closing price:
 date
2020-01-02    322.410004
2020-01-03    318.309998
2020-01-06    316.570007
2020-01-07    312.679993
2020-01-08    316.630005
                 ...    
2020-12-24    131.970001
2020-12-28    136.690002
2020-12-29    134.869995
2020-12-30    133.720001
2020-12-31    132.690002
Name: close, Length: 253, dtype: float64
Rolling mean:
 date
2020-01-02           NaN
2020-01-03           NaN
2020-01-06           NaN
2020-01-07           NaN
2020-01-08    317.319802
                 ...    
2020-12-24    136.619998
2020-12-28    134.648000
2020-12-29    133.564000
2020-12-30    133.375999
2020-12-31    134.024000
Name: close, Length: 253, dtype: float64

上述代码中,window参数指定了滚动窗口的大小为5天,因此,计算结果中前四个值为NaN,因为它们没有满足窗口内的条件。

以上是关于Pandas_cum累积计算和rolling滚动计算的详细讲解和示例,希望能对您有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Pandas_cum累积计算和rolling滚动计算的用法详解 - Python技术站

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

相关文章

  • numpy库与pandas库axis=0,axis= 1轴的用法详解

    numpy库和pandas库都是进行数据处理和分析常用的库,其中包含了对数据的计算和操作。在进行数据分析或处理时,就需要很好的掌握numpy和pandas的常用函数和参数,其中,axis参数就是非常重要的一个参数。 1. numpy库的axis用法详解 numpy库的axis用来指定对某一个维度进行操作,比如我们常见的矩阵操作中,如果我们要对每一行进行操作,…

    python 2023年6月13日
    00
  • python3的数据类型及数据类型转换实例详解

    Python3 数据类型及数据类型转换实例详解 在Python3中,有下列主要的数据类型: 数字(Number) 字符串(String) 列表(List) 元组(Tuple) 集合(Set) 字典(Dictionary) 数字(Number) 数字数据类型包括 int、float、bool、complex(复数)。 其中,int(整型)代表整数,float(…

    python 2023年5月14日
    00
  • pandas to_excel 添加颜色操作

    当我们使用pandas将数据导出到Excel时,有时候希望能够对导出的Excel文件的某些单元格进行涂色,使得该文件更加易于读取和理解。本文将详细讲解如何使用python的pandas库实现对Excel文件的颜色添加操作。 步骤一:导入必要的模块 我们在使用pandas库之前需要先安装,并导入必要的模块。在这里,我们需要用到pandas,openpyxl以及…

    python 2023年5月14日
    00
  • Python实现实时增量数据加载工具的解决方案

    Python实现实时增量数据加载工具的解决方案 本文介绍如何使用Python实现实时增量数据加载工具的解决方案。我们将使用常用的Python库和工具来完成数据加载的基本流程,并介绍两个示例,以便更好地理解实现过程。 基本的数据加载流程 拉取增量数据文件 解析增量数据文件,得到要插入、更新、删除的数据行 对数据库进行操作,完成数据插入、更新、删除 使用Pyth…

    python 2023年6月13日
    00
  • Pandas之缺失数据的实现

    当我们在进行数据分析或处理时,经常会遇到许多缺失值的情况。如何处理这些缺失值,成为了数据分析中不可忽略的一部分。Pandas是一个非常强大的数据分析工具,它提供了许多简单易操作的函数来处理缺失数据的情况。 Pandas中缺失数据的处理方式 Pandas中常用的处理缺失数据的方式有三种:删除、填充和插值。 删除法 删除掉包含空值的行或列是一种常用的方法。删除掉…

    python 2023年5月14日
    00
  • 在Python Pandas中将列向左对齐

    在Python Pandas中,可以使用以下方式将列向左对齐: 使用pandas.DataFrame.style对象的set_properties方法设置表格中的CSS样式,其中text-align可以设置文本在单元格中的对齐方式。例如,将所有列都向左对齐可以使用以下代码: “`python import pandas as pd df = pd.Data…

    python-answer 2023年3月27日
    00
  • Python数据分析Pandas Dataframe排序操作

    下面是关于“Python数据分析Pandas Dataframe排序操作”的完整攻略。 一、Pandas Dataframe排序操作 Pandas是基于Numpy开发的数据分析工具,最重要的两个数据结构是Series和DataFrame,其他的几乎都是在这两个数据结构的基础上进行扩展的。 Pandas Dataframe排序操作是数据分析中常用的操作之一,常…

    python 2023年5月14日
    00
  • pandas中聚合函数agg的具体用法

    Pandas是Python中广受欢迎的数据处理库,其中agg函数是一种非常常用的聚合函数,本文将为您介绍该函数的具体用法。 什么是聚合函数 在数据分析中,我们有时需要对数据进行汇总分析,例如对于一组数据,我们可能需要统计其平均值、最大值、最小值等统计量。这些计算方法就是聚合函数(Aggregation Function)。在Pandas中,聚合函数的统计操作…

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