Pandas 计算递增平均值

Pandas 计算递增平均值

在本文中,我们将学习如何使用Python Pandas计算递增平均值。递增平均值指的是,每输入一次新的数据,就重新计算一次平均值。这在许多统计分析中都是非常有用的,比如股票价格等。

阅读更多:Pandas 教程

初始数据

首先,让我们创建一组包含随机数据的数列作为我们的示例数据。可以使用Python的NumPy库生成一个包含10个随机数字的数组。

import numpy as np
import pandas as pd

data = np.array([20.1, 21.2, 21.0, 21.5, 22.0, 23.2, 23.5, 21.1, 21.2, 20.5])

接着,我们将创建一个Pandas DataFrame对象来存储这组数据,并将其命名为“df”:

df = pd.DataFrame(data, columns=["value"])
print(df)

这将输出以下结果:

   value
0   20.1
1   21.2
2   21.0
3   21.5
4   22.0
5   23.2
6   23.5
7   21.1
8   21.2
9   20.5

汇总统计

使用Pandas可以很容易地计算出DataFrame的统计信息。通过调用describe()函数,可以获得数据的计数、平均值、标准差、最小/最大值以及25%/50%/75%分位数等详细信息:

print(df.describe())

输出结果如下:

           value
count  10.000000
mean   21.400000
std     1.363818
min    20.100000
25%    21.000000
50%    21.200000
75%    22.125000
max    23.500000

递增平均值

要计算递增平均值,我们可以使用expanding()函数来创建一个移动窗口,该窗口将逐步收集我们的数据并计算平均值。

接下来,我们将使用mean()函数计算每个窗口的平均值,并将结果存储在新的列“incremental_mean”中:

df["incremental_mean"] = df.expanding().mean()
print(df)

这将输出以下结果:

   value  incremental_mean
0   20.1         20.100000
1   21.2         20.650000
2   21.0         20.766667
3   21.5         21.200000
4   22.0         21.560000
5   23.2         21.983333
6   23.5         22.357143
7   21.1         22.162500
8   21.2         22.066667
9   20.5         21.750000

可以看到,递增平均值变化并随着新数据的输入而变化。

另外,还可以将rolling()函数替换为expanding()函数,这会创建一个移动窗口,该窗口始终包含最后N个数据(根据窗口大小的定义)。

df["rolling_mean"] = df["value"].rolling(3).mean()
print(df)

这将输出以下结果:

   value  incremental_mean  rolling_mean
0   20.1         20.100000           NaN
1   21.2         20.650000           NaN
2   21.0         20.766667     20.766667
3   21.5         21.200000     21.233333
4   22.0         21.560000     21.500000
5   23.2         21.983333     22

如上所述,这个rolling_mean列包含了三个数据的移动窗口平均值,因此在前两个值上是NaN。在第三行和后面,可以看到rolling_mean列的值等于前一个值、当前值和下一个值的平均值。

绘制结果

最后,我们可以将DataFrame中的结果绘制成一个图表。使用Matplotlib库中的plot()函数,我们可以创建一条曲线,该曲线显示出递增平均值和原始数据值:

import matplotlib.pyplot as plt

plt.plot(df["value"], label="Value")
plt.plot(df["incremental_mean"], label="Incremental Mean")
plt.legend(loc="upper left")
plt.show()

总结

在本文中,我们介绍了如何使用Python Pandas计算递增平均值。我们使用了expanding()函数和rolling()函数来创建滚动窗口,并使用mean()函数计算每个窗口的平均值。在计算结果之后,我们使用Matplotlib库中的plot()函数将结果绘制成一个图表,以更好地了解数据变化和计算结果。希望这可以帮助您更好地了解Pandas计算当天的递增平均值。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程