我有兩個 numpy 陣列和資料框,如下所示
val = np.array([0.501,0.32])
values = np.arange(24).reshape((2,3,4))
input_df = pd.DataFrame(columns=['colname_' str(i) for i in range(4)])
我想
a) 創建一個包含 3 列的新資料框(虛擬),例如ROW_ID, FEATURE NAME,Contribution
b) 虛擬資料幀的值應使用np.array上述和column names from input_df`填充
c) 在Feature Name列下使用 input_df 列名
b)在虛擬資料框中填充val[0]ascontribution并使用每個元素從values[0][1]將其填充到contribution列中。我嘗試了下面的代碼
pd.DataFrame({
"Feature Name": ["Base value"] [f"{col}" for col in df.columns.tolist()],
"Contribution": (val[0].tolist()) list(values[0][1])
})
但我收到一條錯誤訊息
型別錯誤: 不支持的運算元型別:'float' 和 'list'
或者我還收到另一個錯誤,即
ValueError:所有陣列的長度必須相同
我希望我的輸出如下所示

更新 - 真實資料問題

uj5u.com熱心網友回復:
嘗試:
pd.DataFrame({
"Feature Name": ["Base value"] [f"{col}" for col in df.columns.tolist()],
"Contribution": (val[:1].tolist()) list(values[0][1])
# ^^^^
})
val[0]使其成為標量值,甚至緊隨其后.tolist()
>>> type(val[0].tolist())
<class 'float'>
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/453518.html
下一篇:列印表示整個變數
