Python es un excelente lenguaje para realizar análisis de datos, principalmente debido al fantástico ecosistema de paquetes de Python centrados en datos. Pandas es uno de esos paquetes que facilita mucho la importación y el análisis de datos.
La función pandas dataframe.rolling() proporciona la función de cálculos de ventana móvil. El concepto de cálculo de ventana móvil se utiliza principalmente en el procesamiento de señales y datos de series temporales. En palabras muy simples, tomamos un tamaño de ventana de k a la vez y realizamos alguna operación matemática deseada en él. Una ventana de tamaño k significa k valores consecutivos a la vez. En un caso muy simple, todos los valores de ‘k’ tienen la misma ponderación.
Sintaxis: DataFrame.rolling(window, min_periods=Ninguno, freq=Ninguno, centro=Falso, win_type=Ninguno, on=Ninguno, eje=0, cerrado=Ninguno)
Parámetros:
ventana: Tamaño de la ventana móvil. Este es el número de observaciones utilizadas para calcular la estadística. Cada ventana tendrá un tamaño fijo. Si es un desplazamiento, este será el período de tiempo de cada ventana. Cada ventana tendrá un tamaño variable en función de las observaciones incluidas en el período de tiempo. Esto solo es válido para índices de fecha y hora.
min_periods : Número mínimo de observaciones en la ventana requeridas para tener un valor (de lo contrario, el resultado es NA). Para una ventana que se especifica mediante un desplazamiento, esto se establecerá de manera predeterminada en 1.
freq :Frecuencia a la que ajustar los datos antes de calcular la estadística. Especificado como una string de frecuencia o un objeto DateOffset.
center : Establecer las etiquetas en el centro de la ventana.
win_type : proporcione un tipo de ventana. Consulte las notas a continuación.
on : Para un
DataFrame , columna en la que se calcula la ventana móvil, en lugar del índice . Para ventanas basadas en desplazamiento, el valor predeterminado es ‘derecha’. Para ventanas fijas, el valor predeterminado es ‘ambos’. Casos restantes no implementados para ventanas fijas.
eje: int o string, por defecto 0
Nota: La palabra clave freq se usa para conformar datos de series de tiempo a una frecuencia específica al volver a muestrear los datos. Esto se hace con los parámetros predeterminados de resample() (es decir, usando la media).
Si win_type=none, todos los valores de la ventana se ponderan de manera uniforme. Hay varios otros tipos de tipo de ventana rodante. Para obtener más información sobre el otro tipo de ventana móvil, consulte esta documentación de scipy.
Para obtener un enlace al archivo CSV utilizado en el código, haga clic aquí . Estos son datos de precios de acciones de Apple por una duración de 1 año desde (13-11-17) hasta (13-11-18)
Ejemplo n.º 1: suma móvil con una ventana de tamaño 3 en la columna de precio de cierre de acciones
Python3
# importing pandas as pd import pandas as pd # By default the "date" column was in string format, # we need to convert it into date-time format # parse_dates =["date"], converts the "date" column to date-time format # Resampling works with time-series data only # so convert "date" column to index # index_col ="date", makes "date" column df = pd.read_csv("apple.csv", parse_dates =["date"], index_col ="date") # Printing the first 10 rows of dataframe df[:10]
Python3
# 3 indicates the window size # we have selected 'triang' type window # which returns triangular type window # sum() function find the sum over # all the windows in our data frame df.close.rolling(3, win_type ='triang').sum()
Producción :
Ejemplo n.º 2: Media de ventana móvil sobre un tamaño de ventana de 3. Usamos el tipo de ventana predeterminado, que es ninguno. Por lo tanto, todos los valores se ponderarán de manera uniforme.
Python3
# importing pandas as pd import pandas as pd df = pd.read_csv("apple.csv", parse_dates =["date"], index_col ="date") # close is the column on which # we are performing the operation # mean() function finds the mean over each window df.close.rolling(3).mean()
Producción :
Publicación traducida automáticamente
Artículo escrito por Shubham__Ranjan y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA