跳转至

熊猫-时间间隔滚动平均值

原文:https://www.geesforgeks.org/pandas-按时间间隔滚动平均值/

在本文中,我们将研究如何使用 Python 中的 Pandas 按时间间隔计算数据帧的滚动平均值。

熊猫data frame.rolling()是一个帮助我们在滚动窗口上进行计算的函数。换句话说,我们取一个固定大小的窗口,对其进行一些数学计算。

*语法:*数据帧滚动(窗口,最小周期=无,中心=假,win_type =无,开=无,轴=0)。平均值()

**参数:

  • 窗口:窗口大小。这就是我们在计算每一个窗口时需要观察的次数。
  • min_periods :窗口中需要有值的最少观察次数(否则结果为 n a)。
  • 居中:用于将标签设置在窗口的中央。
  • win_type :用于设置窗口类型。
  • 上的:我们必须计算滚动平均值的数据帧的 Datetime 列。
  • :整数或字符串,默认为 0**

*使用的数据集:* 特斯拉_股票

逐步实施

*步骤 1:导入库*

蟒蛇 3

# import pandas as pd
import pandas as pd

步骤 2:导入数据

蟒蛇 3

# importing Data
tesla_df = pd.read_csv('Tesla_Stock.csv', index_col='Date', 
                       parse_dates=True)

# printing the dataFrame
tesla_df.head(10)

*输出*:

我们将计算数据框“关闭”列的滚动平均值。

*第三步:计算滚动平均值*

蟒蛇 3

# Updating the dataFrame with just the 
# column 'Close' as others columns are 
# of no use right now we have used .to_frame
# which converts Series to a DataFrame.
tesla_df = tesla_df['Close'].to_frame()

# calculating Rolling mean and storing it 
# into a new column of existing dataFrame
# we have set the window as 30 and rest all
# parameters are set to default.
tesla_df['MA30'] = tesla_df['Close'].rolling(30).mean()

# Rolling mean is also called as Moving Average ,
# hence we have used the notation MA
# and MA30 is the moving average (rolling mean) 
# of 30 days

# printing dataframe
tesla_df

*输出:*

列 MA30 的前 29 行将具有空值,第一个非空值将在第 30 行。现在我们将计算窗口为 200 的滚动平均值。

蟒蛇 3

# calculating Rolling mean and storing it into
# a new column of existing dataFrame we have set
# the window as 200 and rest all parameters are 
# set to default.
tesla_df['MA200'] = tesla_df['Close'].rolling(200).mean()

# Rolling mean is also called as Moving Average, hence
# we have used the notation MA and MA200 is the moving
# average (rolling mean) of 200 days

# printing dataframe
tesla_df

*输出*:

对于“MA200”,第一个非空值将出现在第 200 行。现在让我们绘制“MA30”、“MA200”和“Close”以获得更好的可视化效果

第四步:绘图

蟒蛇 3

# importing matplotlib module
import matplotlib.pyplot as plt
plt.style.use('default')

# %matplotlib inline: only draw static
# images in the notebook
%matplotlib inline

tesla_df[['Close', 'MA30', 'MA200']].plot(
  label='tesla', figsize=(16, 8))

*输出:*



回到顶部