首页 > 解决方案 > 将长度不匹配的列添加到 Julia 中的数据框中

问题描述

我正在尝试将长度(行数)不匹配的列添加到数据框中,它会引发错误,

DimensionMismatch("新列目标的长度为 60000 必须与数据框中的行数匹配 (47040000)")

我的代码片段是,

df = DataFrame(:Feature => train_x, :Target => train_y)

#train_x has 47040000 rows
#train_y has 60000 rows

请为这个问题提出一个解决方案。先感谢您。

标签: dataframejulia

解决方案


你确定这是你想要做的吗?通常人们会期望有很多行的特征,因为有目标列的行,所以这个错误可能指向代码中的概念问题。

如果你绝对必须这样做,我看到两个选项:

  • missing用您选择的值或某个值填充较短的向量,因此:Target => [train_y; [missing for _ in length(train_x) - length(train_y)] . 在这里,我在向量的末尾填充,这可能适合也可能不适合您的情况
  • 将您的列的数据框执行到leftjoin带有您的train_x 列的数据train_y框上 - 为此,您需要在两个数据框中都有一个 ibex 列,用于描述 y 的行如何与 x 匹配。如果您只是向两个 DataFrame 添加运行索引1:length(train_*),则结果将与填充结尾train_y相同missing

推荐阅读