Pandas - разбить фрейм данных на несколько фреймов на основе дат?
У меня есть датафрейм с несколькими столбцами вместе со столбцом даты. Формат даты - 31.12.15, и я установил его как объект даты и времени.
Я установил столбец datetime в качестве индекса и хочу выполнить регрессионное вычисление для каждого месяца кадра данных.
Я полагаю, что методология для этого будет разделять фреймы данных на несколько фреймов, основанных на месяце, сохранять в списке фреймов данных, а затем выполнять регрессию для каждого фрейма данных в списке.
Я использовал groupby, которая успешно разбивала фрейм данных по месяцам, но я не уверен, как правильно преобразовать каждую группу в объекте groupby в фрейм данных, чтобы иметь возможность запускать на нем мою функцию регрессии.
Кто-нибудь знает, как разбить фрейм данных на несколько фреймов на основе даты, или лучший подход к моей проблеме?
Вот мой код, который я написал до сих пор
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')