如何在Ruby中有条件地从二维数组中删除整个列?

如何在Ruby中有条件地从二维数组中删除整个列?,ruby,csv,Ruby,Csv,我有几个包含数千列的大型csv文件,需要导入这些文件,然后删除该列中基于整列的内容。在Ruby中有没有一种简单的方法来处理这个问题 我可以转置数据,然后删除行,但我想知道是否有一种更符合语法的方法 您需要使用Array#slice对行进行迭代并删除列 比如: my_array.each do |row| row.slice!(3) if <insert condition> end my_array.each do|行| 划船,划船!(3) 如果 结束 应该这样做。因为需要将

我有几个包含数千列的大型csv文件,需要导入这些文件,然后删除该列中基于整列的内容。在Ruby中有没有一种简单的方法来处理这个问题


我可以转置数据,然后删除行,但我想知道是否有一种更符合语法的方法

您需要使用
Array#slice对行进行迭代并删除列

比如:

my_array.each do |row|
  row.slice!(3) if <insert condition>
end
my_array.each do|行|
划船,划船!(3) 如果
结束

应该这样做。

因为需要将csv中的所有列分配给数据库中的列,所以只需忽略csv中不需要的列。博客帖子就是一个很好的例子。

一个暗中操作,但是如果标准足够简单,并且您可以通过某种方式对数据进行采样以查看需要删除的列,那么您可以首先跳过导入列,如果可能的话,这应该比切片更快,这是另外一种方法。

我最后使用了转置,然后使用reverse\u从最底层的一行开始向上移动!在需要删除的行上。谢谢您的帮助。

我没有导入数据库,手动跳过行会很麻烦。我有不到7000列。