如何在python中根据年份拆分数据帧?

2024-04-28 14:46:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个名为“dataframe”的数据框,其中包含某个日期的销售信息。每个日期条目的格式为YYYY-MM-DD,数据范围为2012-2017。我想把这个数据帧分成6个单独的数据帧,每年一个。例如,第一个split dataframe将包含2012年的所有条目。在

我想我可以在下面的代码中做到这一点。我将每年的数据帧分成一个,并将它们放入“年”列表中。但是,当我尝试在每个数据帧上运行auto-arima时,我得到错误“Found input variables with inconsistent number of samples”

我想这是因为我没有正确地分割我的原始数据帧。如何根据年份正确分割数据帧?在

#Partition data into years
years = [g for n, g in dataframe.set_index('Date').groupby(pd.Grouper(freq='Y'))]

#Create a list that will hold all auto_arima results for every dataframe
stepwise_models = []

#Call auto_arima on every dataframe
for x in range(len(years)-1):
    currentDf = years[x]
    model = auto_arima(currentDf['price'], exogenous=xreg, start_p=1, start_q=1,
        max_p=3, max_q=3, m=12,
        start_P=0, seasonal=True,
        d=1, D=1, trace=True,
        error_action='ignore',  
        suppress_warnings=True, 
        stepwise=True)
    stepwise_models.append(model) #Store current auto_arima result in our stepwise_models[] list

Tags: 数据intruedataframeforautomodelmodels
1条回答
网友
1楼 · 发布于 2024-04-28 14:46:03

您可以使用datetime accesor按年度筛选行并按年度创建新的数据帧

import datetime as dt
dataframe1=dataframe[dataframe['Date'].dt.year == 2012]

相关问题 更多 >