Pandas: ¿divide el marco de datos en varios marcos de datos según las fechas?
Tengo un marco de datos con varias columnas junto con una columna de fecha. El formato de fecha es 31/12/15 y lo configuré como un objeto de fecha y hora.
Configuré la columna de fecha y hora como el índice y quiero realizar un cálculo de regresión para cada mes del marco de datos.
Creo que la metodología para hacer esto sería dividir el marco de datos en múltiples marcos de datos según el mes, almacenarlos en una lista de marcos de datos y luego realizar una regresión en cada marco de datos de la lista.
He usado groupby que dividió con éxito el marco de datos por mes, pero no estoy seguro de cómo convertir correctamente cada grupo en el objeto groupby en un marco de datos para poder ejecutar mi función de regresión en él.
¿Alguien sabe cómo dividir un marco de datos en múltiples marcos de datos según la fecha o un mejor enfoque para mi problema?
Aquí está mi código que he escrito hasta ahora
import pandas as pd
import numpy as np
import statsmodels.api as sm
from patsy import dmatrices
df = pd.read_csv('data.csv')
df['date'] = pd.to_datetime(df['date'], format='%Y%m%d')
df = df.set_index('date')
# Group dataframe on index by month and year
# Groupby works, but dmatrices does not
for df_group in df.groupby(pd.TimeGrouper("M")):
y,X = dmatrices('value1 ~ value2 + value3', data=df_group,
return_type='dataframe')