我正在尝试将数组数据映射到列名列表
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列表表示)
答案 0 :(得分:3)
您的数组内部有一个数组。您有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)