如何合并两个大的CSV文件?

问题描述 投票:0回答:2

我有两个大的 .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 文件中。然而,这需要时间(并且消耗资源)。

我愿意接受任何建议。

python bash csv join dataset
2个回答
0
投票

用 pandas 加载它们,并使用函数 .join() 将两者与您需要的列引用连接起来


0
投票

尝试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)"
© www.soinside.com 2019 - 2024. All rights reserved.