我有两个 .csv 文件,其中文件 1 的第一行是:
MPID,Title,Description,Model,Category ID,Category Description,Subcategory ID,Subcategory Description,Manufacturer ID,Manufacturer Description,URL,Manufacturer (Brand) URL,Image URL,AR Price,Price,Ship Price,Stock,Condition
文件 2 的第一行:
Regular Price,Sale Price,Manufacturer Name,Model Number,Retailer Category,Buy URL,Product Name,Availability,Shipping Cost,Condition,MPID,Image URL,UPC,Description
然后每个文件的其余部分都充满了信息。
如您所见,这两个文件都有一个名为 MPID 的公共(public)字段(文件 1:col 1,文件 2:col 9,其中第一个 col 是 col 1)。
我想创建一个新文件,通过查看此列来组合这两个文件(如:如果两个文件中都有一个 MPID,那么在新文件中,这个 MPID 将与其行一起出现来自文件 1 及其来自文件 2 的行)。如果一个 MPID 只出现在一个文件中,那么它也应该进入这个组合文件。
文件没有以任何方式排序。
我如何在使用 shell 脚本或 python 的 debian 机器上执行此操作?
谢谢。
编辑:除了分隔字段的逗号外,这两个文件都没有逗号。
最佳答案
sort -t , -k index1 file1 > sorted1
sort -t , -k index2 file2 > sorted2
join -t , -1 index1 -2 index2 -a 1 -a 2 sorted1 sorted2
关于python - 按公共(public)列合并 2 个 .csv 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/826812/