小编ama*_*bra的帖子

如何在Python中根据年份分割数据框?

我有一个名为“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
Run Code Online (Sandbox Code Playgroud)

python statistics pandas data-science pyramid-arima

5
推荐指数
1
解决办法
1万
查看次数

熊猫如何将数组放置在单个数据帧单元格中?

所以我目前有一个如下所示的数据框:

当前数据帧

我想添加一个名为“预测器”的全新列,其中只有一个包含数组的单元格。

所以 [0, 'Predictors'] 应该包含一个数组,并且同一列中该单元格下方的所有内容都应该是空的。

这是我的尝试,我尝试创建一个仅包含“预测器”列的单独数据框,并尝试将其附加到当前数据框,但我得到:“长度不匹配:预期轴有 3 个元素,新值有 4 个元素。”

如何将包含数组的单个单元格附加到我的数据帧?

# create a list and dataframe to hold the names of predictors
dataframe=dataframe.drop(['price','Date'],axis=1)  
predictorsList = dataframe.columns.get_values().tolist()
predictorsList = np.array(predictorsList, dtype=object)

# Combine actual and forecasted lists to one dataframe
combinedResults = pd.DataFrame({'Actual': actual, 'Forecasted': forecasted})

predictorsDF = pd.DataFrame({'Predictors': [predictorsList]})

# Add Predictors to dataframe
#combinedResults.at[0, 'Predictors'] = predictorsList
pd.concat([combinedResults,predictorsDF], ignore_index=True, axis=1)
Run Code Online (Sandbox Code Playgroud)

python statistics dataframe pandas data-science

5
推荐指数
1
解决办法
1万
查看次数