将 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_ID
、FEATURE NAME
、Contribution
b) 虚拟数据帧的值应使用上面的 np.array
和 column 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'>
我有两个 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]
填充为 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'>