作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个名为“dataframe”的数据框,其中包含一堆特定日期的销售信息。每个日期条目的格式为 YYYY-MM-DD,数据范围从 2012 年到 2017 年。我想将此数据框拆分为 6 个单独的数据框,每年一个。例如,第一个分割数据帧将包含 2012 年的所有条目。
我想我可以在下面的代码中做到这一点。我将数据框分成每年一个,并将它们放入“年”列表中。但是,当我尝试在每个数据帧上运行 auto_arima 时,我收到错误“发现样本数量不一致的输入变量。”
我认为这是因为我没有正确分割原始数据帧。如何根据年份正确分割数据框?
#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
最佳答案
如果您想按所有可用年份拆分数据框,您可以通过查找数据框中的唯一年份来完成此操作,然后循环这些唯一年份,然后使用 bool 索引在循环中过滤掉每一年。
所以这个想法可以在如下函数中实现:
def split_years(dt):
dt['year'] = dt['Date'].dt.year
return [dt[dt['year'] == y] for y in dt['year'].unique()]
上述函数的结果将是一个数据帧列表,每个数据帧都有一个年份。
关于python - 如何在Python中根据年份分割数据框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51072938/
我是一名优秀的程序员,十分优秀!