我一直在尝试从 csv 文件中获取单列。
我已经查看了文档,http://www.ruby-doc.org/stdlib/libdoc/csv/rdoc/index.html http://www.ruby-doc.org/stdlib/libdoc/csv/rdoc/index.html但还是不太明白如何使用它。
如果我使用CSV.table
,与CSV.read
。我承认我正在加载的数据集非常大,这正是我只想从中获取单个列的原因。
我的要求目前看起来就像这样
@dataTable = CSV.table('path_to_csv.csv')
当我调试时,我得到的响应是
#<CSV::Table mode:col_or_row row_count:2104 >
文档说我应该能够使用by_col() http://ruby-doc.org/stdlib-1.9.2/libdoc/csv/rdoc/CSV/Table.html#method-i-by_col#by_col-method,但是当我尝试输出时
<%= debug @dataTable.by_col('col_name or index') %>
它给了我“未定义的方法‘col’错误”
有人可以向我解释一下我应该如何使用 CSV 吗?是否有一种方法可以使用“读取”而不是“表”更快地获取列?
我使用的是 Ruby 1.92,它说它正在使用 fastCSV,所以我不需要使用 FasterCSV gem。
要从 csv 中提取一列,我可能会执行如下操作:
col_data = []
CSV.foreach(FILENAME) {|row| col_data << row[COL_INDEX]}
这应该比 CSV.Table 上的任何操作都要快得多
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)