将 np.float64 和 np.array 值存储为数据框中的列值

Store np.float64 and np.array values as column values in dataframe

我有两个 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_IDFEATURE NAMEContribution

b) 虚拟数据帧的值应使用上面的 np.arraycolumn names from input_df`

填充

c) 在 Feature Name 列下使用 input_df 列名称

b) 在虚拟数据框中将 val[0] 填充为 contribution,并使用 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])
    })

但我收到一条错误消息

TypeError: unsupported operand type(s) for +: 'float' and 'list'

或者我还收到另一个错误

ValueError: All arrays must be of the same length

我希望我的输出如下所示

更新 - 实际数据问题

尝试:

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'>