【发布时间】:2014-07-25 05:23:21
【问题描述】:
我正在尝试将包含股票索引的 CSV 文件与 Ruby 结合起来,并且很难理解那里的文档。时间不早了,我可以找个朋友,所以放轻松:
我有几个文件,标题相同:
["Date", "Open", "High", "Low", "Close", "Volume"]
我希望我的 ruby 脚本读取每个“日期”列,并写入一个新的 CSV,编译从最早日期到最晚日期的所有日期范围。
奖金: 理想情况下,我想将所有其他列数据(“Open”、“High”等)添加到这个新的 CSV 文件中,并由仅包含以下 CSV 文件名的列拆分以供参考。
感谢您对此给予的任何考虑。我真正想做的是与 Ruby 老师坐下来帮助我理解文档。如何使用 CSV.read() 或 CSV.foreach() 做 |x|创建要执行的数组/哈希的方法?
(欢迎理论和明智的回答)
假设:
CSV.read("data/DOW.csv") do |output|
puts output
end
返回:
[["Date", "Open", "High", "Low", "Close", "Volume"], ["2014-07-14", "71.35", "71.52", "70.82", "71.28", "823063.0"], ["2014-07-15", "71.32", "71.76", "71.0", "71.28", "813861.0"], ["2014-07-16", "71.34", "71.58", "70.68", "71.02", "843347.0"], ["2014-07-17", "70.54", "71.46", "70.54", "71.13", "1303839.0"], ["2014-07-18", "71.46", "72.95", "71.09", "72.46", "1375922.0"], ["2014-07-21", "72.21", "73.46", "71.88", "73.38", "1603854.0"], ["2014-07-22", "73.46", "74.76", "73.46", "74.57", "1335305.0"], ["2014-07-23", "74.54", "75.1", "73.77", "74.88", "1834953.0"]]
如何识别行、列等?我正在寻找将这个数组转换为哈希等的方法或方法。老实说,一个总体理论方法将适合我的需要。
【问题讨论】:
-
你已经尝试了什么?
-
如果您提供示例数据和预期输出,应该会很有帮助。
-
我一直在阅读文档并在 irb 中玩,试图让我的方位无济于事。 CSV.read("path/to/csv") 将我的数据放入数组中,而 CSV.foreach("path/to/csv") 将数据输出到字符串中。我试图在数组的输出上调用一些熟悉的方法,例如 .first 并获得相同的输出。我试图从 CSV 类中找到一些函数并了解操作特定行/列的方法。如果我知道如何在列或行特定数组的数组中导航 CSV 给出的输出,我可以采取下一步
-
您可以尝试用输出示例重新表述需求和奖励部分吗?
-
徒弟将通过consulting the options
newaccepts实现启蒙。如果需要已处理的标头,则必须请求已处理的标头。