python - 通过混合列表和数据帧列,数组长度与索引长度不匹配

标签 python pandas dataframe

我有 2 个数据框和一个列表。我想将它们混合在 pandas 数据框中。

Lista m1、Dataframe test_subdata 和 Dataframe 预测:

len(m1)
438
test_subdata.shape
(438, 8)
predicciones.shape
(438, 3)

所以基本上我想这样做,一个大小为 (438, 3) 且具有上述值的数据框:

result_frame = pd.DataFrame({'index': test_subdata['id'], 'match_1': m1, 
                             'pred1': predicciones['pred1']})

但是当我这样做时,出现以下错误:

ValueError: array length 438 does not match index length 841

一些想法,发生了什么?

PS:当我仅将一个数据帧与列表混合时,一切正常,即使在 2 个数据帧之间也是如此。

最佳答案

由于该系列包含的索引,您收到数组不匹配错误。因此,请尽早重置索引或仅传递值,即

result_frame = pd.DataFrame({'index': test_subdata['id'].values, 'match_1': m1, 
                         'pred1': predicciones['pred1'].values})

说明

由于 test_subdatapredicciones 是系列,如果 test_subdatapredicciones 的索引不同,则新对象具有将从数据框构造函数创建不存在的索引。因此在这种情况下数据帧大小加倍。 (为了使您现有的方法发挥作用,请确保两个数据帧具有相同的索引。)

由于m1长度与现有索引长度不匹配,因此将出现数组长度不匹配错误。

关于python - 通过混合列表和数据帧列,数组长度与索引长度不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46492964/

相关文章:

python - 如何每隔 x 小时在 bash 脚本中重新启动 python 脚本?

python - 如何 reshape 数据框以保留唯一信息?

python - Pandas - 对 1-N 列的总和系列

python - 在 pandas 中展平一个系列,即一个元素为列表的系列

python - ffill 不在 pandas dataframe 中填充数据

python - 从 pandas 列中提取对象属性

python - 仅使用 For 循环在 Python 中实现插入排序

python - 拆分字符串并删除空格 Python

python - 如何将嵌套字典与另一个嵌套字典组合,但前提是每个字典都具有匹配值?

python - 如何从包含年份和月份的单个日期列中为每年创建一个列?