我有两个 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
输入_df`
c) 根据Feature Name
列使用 input_df 列名称
b) 填充val[0]
as 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])
})
但我收到一条错误消息
类型错误:+ 不支持的操作数类型:“float”和“list”
或者我还收到另一个错误
ValueError:所有数组的长度必须相同
我希望我的输出如下所示
更新-真实数据问题
Try:
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'>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)