簡體   English   中英

從數組和列表創建pandas系列

[英]Creating pandas series from array and list

我正在嘗試將數組數據映射到列名列表

cols = list(X.columns)
a = log_reg.coef_
pd.Series(data=a,index=cols)

但不斷收到此錯誤消息

ValueError: Length of passed values is 1, index implies 32

這是一個數據樣本

array([[-3.45917636e-04,  3.61924667e-01, -4.09270503e-01,
        -8.77365851e-01,  2.63110856e-01,  1.19371203e-01,
        -1.24971101e-01,  4.36160913e-01, -3.99315598e-01,
        -4.43522845e-01, -4.06608631e-01, -3.75995346e-01,
        -7.94023490e-02, -3.19954555e-01, -6.44072018e-01,
        -6.89515406e-01, -3.31630739e-01, -4.58094286e-01,
         1.17109079e-01,  2.28902301e-02,  1.74657944e-01,
         4.70689088e-01,  5.72027148e-01,  2.93303704e-01,
        -6.04354969e-03, -6.04084018e-01,  1.22102664e-01,
        -3.65628250e-02,  8.46421904e-02, -3.97469438e-03,
         1.05515634e+00, -6.57530123e-01]])

和cols中的行列表:

['Time',
 'V1',
 'V2',
 'V3',
 'V4',
 'V5',
 'V6',
 'V7',
 'V8',
 'V9',
 'V10',
 'V11',
 'V12',
 'V13',
 'V14',
 'V15',
 'V16',
 'V17',
 'V18',
 'V19',
 'V20',
 'V21',
 'V22',
 'V23',
 'V24',
 'V25',
 'V26',
 'V27',
 'V28',
 'Amount',
 'Hours',
 'Fraudulent']

最終目的是創建一個顯示每個要素系數的系列(由cols列表表示)

你的數組里面有一個數組。 您有32個列值,但您的行數組的長度為1.因此,您的相應行和列的長度不匹配。 您需要的是內部數組,其長度為32.您可以使用索引0訪問它。

因此,請嘗試以下方法:

pd.Series(data=a[0], index=cols)

如果您的數組內部有更多嵌套數組,並且您不想使用多個索引(如a[0][0]等),則可以使用這兩個選項中的任何一個來展平數組

pd.Series(data=a.flatten(), index=cols)

要么

pd.Series(data=a.ravel(), index=cols)

暫無
暫無

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

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