我正在使用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
方法,但无法清楚地获得它。
此外,我尝试了一些在线合并工具,但他们只是一个接一个地附加工作表而不是映射列。所以我也没有使用在线工具的问题。
答案 0 :(得分:1)
这是在Excel中使用VLOOKUP
公式的方法:
公式有4个参数:
有关该功能的文档,请参阅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