将python列表解压到数据帧中

2024-09-26 22:53:54 发布

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

我是python的新手,并且我面临着函数返回的数据类型的问题。 我有两个功能:准备和建模

def Prepare(Inputdf):

    x0 = list(range(e ,s+1 ,-1))
    X = Inputdf[x0] 
    Y = Inputdf['y0']

    return [X,Y]

# Linear Model
def Model(Inputdf, X, Y):

    #Train
    X = sm.add_constant(X)
    lmodel = sm.OLS(Y, X).fit()
    summ = lmodel.summary()

    #Test
    x1 = list(range(e-1 ,s ,-1))
    A = Inputdf[x1]
    A = sm.add_constant(A)

    newcol = lmodel.predict(A)
    newdf = pd.concat([Inputdf, newcol], axis=1)

    return [newdf]

它们在下面的循环中被调用。该函数返回一个列表,但我不确定如何将输出转换为数据帧

forecast = []
for i in wh:
    TrainFinal = TrainInput[TrainInput['column'].isin([i])]
    TestFinal = TestInput[TestInput['column'].isin([i])]

    Modelresult = Model(TestFinal, *Prepare(TrainFinal))
    forecast.append(Modelresult)

    print (forecast)

输出如下所示

[[                   country    y1          0
6990  United Arab Emirates  42.0  24.314137
...                    ...   ...        ...
7426  United Arab Emirates  12.0   8.281969
[71 rows x 3 columns]], 
[                   country    y1          0
8338  United Arab Emirates  97.0  66.740899
...                    ...   ...        ...
8696  United Arab Emirates   8.0  12.884740
[67 rows x 3 columns]], 
[    country    y1          0
284   Chile   6.0  16.672239
...   ...     ...     ...
374   Chile   5.0  13.534690
[67 rows x 3 columns]]

Tags: columns函数modeldefpreparecountryunitedrows
1条回答
网友
1楼 · 发布于 2024-09-26 22:53:54

我发现我做错了什么。 我刚刚删除了“Model Function”中返回的数据帧前面的括号

return [newdf] -> return newdf

然后,我将结果连接起来,而不是附加它们,并重置索引以获得最终输出:)

forecast = pd.concat(Modelresult)
forecast.reset_index(drop=True, inplace=True)

相关问题 更多 >

    热门问题