CSV文件中某个月的抽象数据

问题描述 投票:0回答:1

我有一个这样的CSV文件:

Date,price
2010-01-02,3.658
2010-01-05,3.618
2010-01-06,3.668
2010-01-07,3.628
2010-01-08,3.778

文件中的所有数据都具有year-01-someday,someprice格式

我希望有一个应该以年为参数的功能。它应该读取给定年份的1月数据。应该在CSV文件中的每一行的字符串列表中收集数据。

目前我有这样的事情:

def get_january_data(year: Int) : List[String] =
{
    val body = scala.io.Source.fromFile("x.csv").mkString
    body.split("\n").toList
}

我不知道下一步该做什么?

谢谢你的时间

scala csv
1个回答
0
投票

您可以使用正则表达式模式来识别和提取每行数据的有趣部分。

def get_january_data(year: Int) : List[String] = {
  val Pattern = s"$year-(\\d+)-(\\d+),(.*)".r
  for {
    Pattern("01", day, price) <- io.Source.fromFile("x.csv").getLines
  } yield price
}.toList

get_january_data(2010)  //res0: List(3.658, 3.618, 3.668, 3.628, 3.778)

在这种情况下,它会忽略数据的“日期”部分,但如果需要,您可以将其作为返回的Strings的一部分。

© www.soinside.com 2019 - 2024. All rights reserved.