簡體   English   中英

將 python 列表解壓縮到 dataframe

[英]Unpacking a python list into a dataframe

我對 python 還很陌生,我遇到了 function 返回的數據類型的問題。 我有兩個功能准備和 model

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]

它們在下面的循環中被調用。 function 返回一個列表,但我不確定如何將 output 轉換為 dataframe

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)

output 看起來像這樣

[[                   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]]

我發現我做錯了什么。 我剛剛刪除了“模型函數”中返回的 dataframe 前面的括號

return [newdf] -> return newdf

然后我連接結果而不是附加它們,我重置索引以獲得我的最終 output :)

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM