我有幾個大的csv文件,需要導入數千列,然後刪除整個列的內容列。有沒有一種簡單的方法來在Ruby中處理這個問題?如何有條件地從Ruby中的二維數組中刪除整列?
我可以轉置的數據,然後只刪除行,但我想知道是否有更多的語法上含糖的方式做到這一點。
我有幾個大的csv文件,需要導入數千列,然後刪除整個列的內容列。有沒有一種簡單的方法來在Ruby中處理這個問題?如何有條件地從Ruby中的二維數組中刪除整列?
我可以轉置的數據,然後只刪除行,但我想知道是否有更多的語法上含糖的方式做到這一點。
您需要迭代行並刪除列Array#slice!
。
喜歡的東西:
my_array.each do |row|
row.slice!(3) if <insert condition>
end
應該這樣做。
由於您需要將csv中的所有列分配給數據庫中的列,您只需忽略csv中不需要的列即可。 This博客發帖有個很好的例子。
在黑暗中拍攝,但如果標準足夠簡單,並且您可以以某種方式對數據進行採樣以查看需要刪除的列,也許可以跳過首先導入列,如果可以的話這應該比切片更快,否則就是這樣。
我結束了使用轉置,然後使用reverse_each從底部行切片!在需要刪除的行上。謝謝您的幫助。
我沒有導入到數據庫中,手動跳過行會很繁瑣。我只有7000列。 – srboisvert 2008-12-17 17:27:11