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

我正在用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来完成吗? 如果没有,我该怎么办?

我只是需要它作为我的推荐引擎的数据集,所以任何简单的解决scheme都是值得欢迎的,因为最终的结果就是最重要的。 但是,因为我有一些在Java中的经验,这将容易我的容易理解和实施。

如果有某种方式使用Excel,那么这将是最好的。 我已经尝试在网上search,发现一些VLOOKUP方法,但不能清楚地得到它。

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

看看这个工具 – https://github.com/DataFoxCo/gocsv – 它基于csvkit,但有很多额外的function。 我们的一位工程师定制了它 – 并且开放源代码来帮助解决我们每天处理的一些数据问题:)

它会使用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

我将这些命令分开,以帮助解释它的使用 – 文档中也包含了所有的例子,但最终我会推荐使用stream水线操作,并使用下面的命令:

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

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

在这里输入图像说明

该公式需要4个参数:

  1. 你想要查看的价值
  2. 您正在查看的数据范围
  3. (2)中的列包含你想要的答案
  4. 是否匹配(1)大约即FALSE =完全匹配

有关function的文档,请参阅此处 。