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个参数:
- 你想要查看的价值
- 您正在查看的数据范围
- (2)中的列包含你想要的答案
- 是否匹配(1)大约即FALSE =完全匹配
有关function的文档,请参阅此处 。