簡體   English   中英

如何從 Python 中的列表中提取值並將其放入數據框中

[英]How to extract values from a list in Python and put into a dataframe

我訓練了一個模型並要求模型產生系數:

modelcoeffs = model.fit(X_train, y_train).coef_
coeffslist = list(modelcoeffs)

例如,這讓我很滿意:

print(coeffslist):
[0.17005542 0.72965947 0.6833308  0.02509676]

我試圖將這 4 個系數分開,但它們似乎不是單個元素?

有誰知道如何將這些分成四個數字?

我試圖得到:

df['1'] = coeffslist[0]
df['2'] = coeffslist[1]
df['3'] = coeffslist[2]
df['4'] = coeffslist[3]

但它在df給了我NaN 有沒有人有任何想法? 謝謝!

更新

我基本上是想讓 coeffs 附加到df

print(df)

  1             2         3         4    
....         .....      .....      .....
0.17005542 0.72965947 0.6833308  0.02509676

這個coeffslist看起來不像一個有效的 Python 結構,它缺少逗號。

但你可以試試這個:

import pandas as pd
df = pd.DataFrame([0.17005542, 0.72965947, 0.6833308, 0.02509676])
print(df)

輸出:

          0
0  0.170055
1  0.729659
2  0.683331
3  0.025097

要將 coefs 作為行,請嘗試以下操作:

import pandas as pd
df = pd.DataFrame(columns=list("1234"))
df.loc[len(df)] = [0.17005542, 0.72965947, 0.6833308, 0.02509676]
print(df)

輸出:

          1         2         3         4
0  0.170055  0.729659  0.683331  0.025097

如果您想添加另一行(追加)coefs,只需執行以下操作:

df.loc[1] = [0.17005542, 0.72965947, 0.6833308, 0.02509676]
print(df)

輸出:

          1         2         3         4
0  0.170055  0.729659  0.683331  0.025097
1  0.170055  0.729659  0.683331  0.025097

您可以將 [0.17005542 0.72965947 0.6833308 0.02509676] 轉換為字符串,在空間上將其拆分,再次轉換為浮動,然后附加到數據幀。

str_list= str(coeffslist[0])
float_list= [float(x) for x in str_list.split()]

df=pd.DataFrame(columns=['1','2','3','4'])
a_series = pd.Series(float_list, index = df.columns)
df = df.append(a_series, ignore_index=True)

暫無
暫無

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

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