scala - 如何在 Scala 中将 CSV 列读入向量
问题描述
我有一个 CSV 文件: 我的 CSV 文件
我想这样创建一个地图:
((A -> Vector(10.75,10.75,10.47,...,..), B-> Vector(164.56,164.99,160.98,...), C -> Vector(7.1,7.4,9.4,...,), D - > Vector(14.2,14.8,18.8,...,..))
这是我到目前为止所拥有的(不多):
val source=Source.fromFile("train3.csv")
var firstLine = source.getLines.find(_ => true).get
println(firstLine)
source.getLines().foreach(line=>{
val lines = line.split(",").map(_.trim).toVector
println(cols)
})
source.close()
此代码打印: 我的代码打印的内容
我的向量包含行,我需要我的向量包含列而不是 CSV 中的行。
解决方案
一旦你阅读了这些行,并有类似的东西
val lines: Seq[Seq[String]] = ???
,就做
val columns = "ABC..."
lines
.iterator
.map { row => columns.zip(row) }
.groupBy { _._1 }
.mapValues { _._2 }
.toMap
Vectors
如果您出于某种奇怪的原因而特别希望它,那么只需在.to[Vector]
之后添加_._2
推荐阅读
- windows-installer - 使用 InstallShield,我如何“强制”特定的动态链接文件覆盖更高版本的文件?
- javascript - React Native - 在 AppNavigator 之外访问抽屉导航
- angular - 缺少服务的 Angular 库 HttpClient
- javascript - 如何从 Array.push() 中排除特定键
- python - Python excel到csv复制具有不同标题名称的列数据
- netbeans - 如何修复 octaplanner 类 ConferenceSchedulingConstraintProvider.java 中的错误?
- javascript - 如何从javascript中的对象数组添加重复cropName的区域
- pygame - 无法将pygame添加到pycharm?
- vbscript - 从多个文件夹中删除 30 天前的文件
- python - 如何使用索引根据键和值将字典拆分为多个字典?