Excel - 将两个csv文件合并为一个具有公共列的文件

时间:2016-11-13 10:35:20

标签: excel csv excel-formula

我正在使用csv形式的两个数据集(movielens latest-small dataset)。以下是两者的字段。

rating.csv

  user_id   movie_id  rating

movie.csv

  movie_id   movie_name

我想要的是将它们组合成一个带有以下字段的单个.csv

user_id   movie_id   movie_name   rating

以便公共列movie_id映射到相应的movie_name

可以使用Excel完成吗?如果没有,我该怎么办?

我只是需要它作为我的推荐器引擎的数据集,所以任何简单的解决方案都是受欢迎的,因为最终结果才是最重要的。但是因为我在java方面有一些经验,所以我很容易理解和实现。

如果有某种方式使用Excel那么这将是最好的。我尝试过在线搜索并找到了一些VLOOKUP方法,但无法清楚地获得它。

此外,我尝试了一些在线合并工具,但他们只是一个接一个地附加工作表而不是映射列。所以我也没有使用在线工具的问题。

2 个答案:

答案 0 :(得分:1)

这是在Excel中使用VLOOKUP公式的方法:

enter image description here

公式有4个参数:

  1. 您想要查找的值
  2. 您正在研究的数据范围
  3. (2)中包含您想要的答案的列
  4. 是否匹配(1)大约即FALSE =完全匹配
  5. 有关该功能的文档,请参阅here

答案 1 :(得分:0)

查看此工具 - https://github.com/DataFoxCo/gocsv - 它基于csvkit但具有大量附加功能。我们的一位工程师定制了它 - 并开源它以帮助解决我们每天处理的一些数据问题:)

它将使用join命令在几秒钟内完成基本上任何大小的csv的vlookup:

gocsv join --columns 'movie_id','movie_id' --left rating.csv movie.csv > combineddata.csv

然后,如果您仍想重新排序列,也可以这样做:

gocsv select --columns 'user_id','movie_id','movie_name','rating' combineddata.csv > combineddata-final.csv

我把命令拆分到最顶层以帮助解释它的用法 - 文档上也包含了所有示例,但最终我真的建议管道化并在一个命令中执行此操作:

cat rating.csv \ | gocsv join --left --columns 'movie_id','movie_id' movie.csv \ | gocsv select --columns 'user_id','movie_id','movie_name','rating' > combineddata.csv