Pandas: media móvil por intervalo de tiempo

 En este artículo, veremos cómo calcular la media móvil de un marco de datos por intervalo de tiempo usando Pandas en Python.

Pandas dataframe.rolling() es una función que nos ayuda a hacer cálculos en una ventana móvil. En otras palabras, tomamos una ventana de un tamaño fijo y realizamos algunos cálculos matemáticos sobre ella.

Sintaxis: DataFrame.rolling(ventana, min_periods=Ninguno, centro=Falso, win_type=Ninguno, on=Ninguno, eje=0).mean()

Parámetros :

  • ventana : Tamaño de la ventana. Esa es la cantidad de observaciones que tenemos que tomar para el cálculo de cada ventana.
  • min_periods : menor número de observaciones en una ventana requerida para tener un valor (de lo contrario, el resultado es NA).
  • center : Se utiliza para colocar las etiquetas en el centro de la ventana.
  • win_type : se utiliza para establecer el tipo de ventana.
  • on : columna de fecha y hora de nuestro marco de datos en el que tenemos que calcular la media móvil.
  • eje : entero o string, por defecto 0

Conjunto de datos utilizado: Tesla_Stock

Implementación paso a paso

Paso 1: Importación de bibliotecas

Python3

# import pandas as pd
import pandas as pd

Paso 2: Importación de datos

Python3

# importing Data
tesla_df = pd.read_csv('Tesla_Stock.csv', index_col='Date', 
                       parse_dates=True)
  
# printing the dataFrame
tesla_df.head(10)

Salida :

Calcularemos la media móvil de la columna ‘Cerrar’ del DataFrame.

Paso 3: Cálculo de la media móvil

Python3

# 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

Producción:

Las primeras 29 filas de la columna MA30 tendrán un valor NULL y el primer valor no NULL estará en la fila 30. Ahora calcularemos la media móvil con una ventana de 200.

Python3

# 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

Salida :

Para ‘MA200’, el primer no NULL estará en la fila 200. Ahora, grafiquemos ‘MA30’, ‘MA200’ y ‘Cerrar’ para una mejor visualización

Paso 4: Trazado

Python3

# 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))

PRODUCCIÓN:

Publicación traducida automáticamente

Artículo escrito por bistpratham y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *