我有两个大的 .csv 文件想要加入。
file1.csv 具有以下结构:
productcode; *many useless columns* ; startdate; enddate; *some other useless columns*
file2.csv 具有以下结构:
productcode; *many useless columns different from file1* ; page; startdate; enddate; *some othe useless columns*
我想将这两个文件连接到一个文件中(比方说,
out.csv
),其结构与 file1.csv 但是具有 file2.csv 中的“页面”列,即
productcode; *useless columns* ; page; startdate; enddate; *useless columns*
加入条件是相同的产品代码和重叠的日期,即:
file1.productcode == file2.productcode
和
!(file1.endate<file2.startdate or file2.enddate<file1.startdate)
但是,我不知道该怎么做。一种可能是将两个 CSV 导出到 MySql 中,对其进行处理,然后将结果导出到最终的 CSV 文件中。然而,这需要时间(并且消耗资源)。
我愿意接受任何建议。
用 pandas 加载它们,并使用函数 .join() 将两者与您需要的列引用连接起来
尝试CsvCruncher。它就是为了这些目的而制作的。
crunch
-in file1.csv -indexed productcode\
-in file2.csv -indexed productcode \
-out output.csv \
-sql "SELECT file1.*, file2.page FROM file1 LEFT JOIN file2 USING (productcode)"