pandas.DataFrame.expanding的用法

DataFrame.expanding函数用于实现类似rolling但逐渐增加数据的滚动计算,例如累计求和。参数min_periods指定最小计算数,例如在示例中从1个数据开始逐行累加。该函数适用于数据序列的动态分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、基本格式

DataFrame.expanding(min_periods=1, center=None, axis=0, method='single')

函数功能:滚动计算

类似rolling函数,区别在于在rolling函数中“取数框”中的滚动计算数据是固定的,而在expanding函数中,设置最小的计算数,然后累计运算。

参数解释:

min_periods:选择滚动计算的最小数

二、举例

df = pd.DataFrame({"B": [0, 1, 2, np.nan, 4]})

df
     B
0  0.0
1  1.0
2  2.0
3  NaN
4  4.0
df.expanding(1).sum()
     B
0  0.0
1  1.0
2  3.0
3  3.0
4  7.0

表示最小从1个数据开始滚动,累加。

故第一行数据不变,

第二行数据=0(第一行)+1(第二行)

第三行数据=0(第一行)+1(第二行)+2(第三行数据)

第四行数据=0(第一行)+1(第二行)+2(第三行数据)+nan(第四行数据)

以此类推!

DataFrame expanding 是用于在 Pandas 中执行 rolling 和 expanding 操作的方法之一。它可以用来计算滚动或扩展窗口中的统计数据,例如滚动平均值、滚动标准偏差等。 rolling 操作是指对于一个固定大小的窗口,沿着时间序列向前滑动,对窗口中的数据进行统计运算。而 expanding 操作是指从数据集的起始点开始,逐步扩大窗口的大小,对窗口中的数据进行统计运算。 下面是一个简单的示例,展示如何使用 expanding 方法计算累计和: ```python import pandas as pd # 创建一个包含随机整数的 DataFrame df = pd.DataFrame({'data': [1, 2, 3, 4, 5]}) # 使用 expanding 方法计算累计和 expanding_sum = df['data'].expanding().sum() print(expanding_sum) ``` 输出结果为: ``` 0 1.0 1 3.0 2 6.0 3 10.0 4 15.0 Name: data, dtype: float64 ``` 这里,我们使用 `expanding()` 方法创建了一个扩展窗口,并对 `data` 列进行累计求和。由于这是一个扩展窗口,因此在每一行中,我们都计算了从数据集起始点开始的所有值的累计和。 类似地,rolling 方法也可以用于计算滚动窗口内的统计数据。例如,以下代码演示了如何使用 rolling 方法计算一个窗口大小为 3 的滚动均值: ```python import pandas as pd # 创建一个包含随机整数的 DataFrame df = pd.DataFrame({'data': [1, 2, 3, 4, 5]}) # 使用 rolling 方法计算滚动均值 rolling_mean = df['data'].rolling(window=3).mean() print(rolling_mean) ``` 输出结果为: ``` 0 NaN 1 NaN 2 2.000000 3 3.000000 4 4.000000 Name: data, dtype: float64 ``` 这里,我们使用 `rolling()` 方法创建了一个大小为 3 的滚动窗口,并对 `data` 列进行滚动均值计算。在前两个行中,由于窗口大小不够,因此没有计算出平均值,因此这些行中的值为 NaN。在第三行中,我们计算了前三个值的平均值,并将其赋值给了第三个行。以此类推,直到最后一个行,我们计算了前五个值的平均值,得到了 4.0。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值