-1

我正在处理与文件相关的任务..我有一个包含一些行和标题的 CSV 文件..我需要获取具有特定标题的列并在最后创建一个新列并执行一些操作..我如何获取列具有特定标题值的值以及我如何最终创建新列?

4

2 回答 2

1

假设您有以下格式的 CSV

邮政编码 网络 ID 网络名称 区域 新网络?显示名称 64024 275 Kansas City 2 No Kansas City 64034 275 Kansas City 2 No Kansas City

您可以使用 FasterCSV;如果您的 csv 中有标题,那么您可以指定它headers => true,您可以使用 FasterCSV 逐行获取数据,如下所示

FasterCSV.foreach(path_to_file, { :headers => true, :row_sep => :auto }) do |row|

每次迭代 csv 时,您都会从 CSV 文件中获取行,现在您已经知道第 2 列具有“network_id”标题,第 3 列具有“网络名称”标题,因此您可以轻松给出network_id = row[2]network_name = row[3]

希望它能回答你的问题

于 2012-11-26T08:01:11.990 回答
0

CSV 中的第一条记录可被视为 Header 记录。没有任何规则规定必须如此。

来回答你的问题。简短的回答是您必须编写逻辑(使用或不使用 API)来获取您认为是“标题”的内容。

我需要获取具有特定标题的列并在最后创建一个新列并执行一些操作

我认为 API 不会提供任何隐式机制来获取特定的标头。AFAIK CSV 没有规范。您可以使用 FasterCSV 之类的 API 来解析 CSV 以完成工作。

于 2012-11-26T07:47:10.423 回答