pandas
Trabajando con series de tiempo
Buscar..
Creación de series de tiempo
Aquí es cómo crear una serie de tiempo simple.
import pandas as pd
import numpy as np
# The number of sample to generate
nb_sample = 100
# Seeding to obtain a reproductible dataset
np.random.seed(0)
se = pd.Series(np.random.randint(0, 100, nb_sample),
index = pd.date_range(start = pd.to_datetime('2016-09-24'),
periods = nb_sample, freq='D'))
se.head(2)
# 2016-09-24 44
# 2016-09-25 47
se.tail(2)
# 2016-12-31 85
# 2017-01-01 48
Indización parcial de cuerdas
Una forma muy útil de subconjuntar series temporales es usar la indexación parcial de cadenas . Permite seleccionar el rango de fechas con una sintaxis clara.
Obteniendo datos
Estamos utilizando el conjunto de datos en el ejemplo de Creación de series temporales.
Viendo cabeza y cola para ver los límites.
se.head(2).append(se.tail(2))
# 2016-09-24 44
# 2016-09-25 47
# 2016-12-31 85
# 2017-01-01 48
Subconjunto
Ahora podemos subdividir por año, mes, día de manera muy intuitiva.
Por año
se['2017']
# 2017-01-01 48
Por mes
se['2017-01']
# 2017-01-01 48
Por día
se['2017-01-01']
# 48
Con un rango de año, mes, día de acuerdo a sus necesidades.
se['2016-12-31':'2017-01-01']
# 2016-12-31 85
# 2017-01-01 48
pandas también proporciona una función truncate
dedicada para este uso a través de los parámetros de before
y after
, pero creo que es menos claro.
se.truncate(before='2017')
# 2017-01-01 48
se.truncate(before='2016-12-30', after='2016-12-31')
# 2016-12-30 13
# 2016-12-31 85
Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow