Python CSVkit 比较 CSV 文件

Python CSVkit compare CSV files

我有两个类似这样的 CSV 文件..

CSV 1

reference  |  name  |  house
----------------------------
2348A      |  john  |  37
5648R      |  bill  |  3
RT48       |  kate  |  88
76A        |  harry |  433

CSV2

reference
---------
2348A
76A

使用 Python 和 CSVkit 我试图通过将 CSV1 中的行与 CSV2 进行比较来创建输出 CSV。有没有人可以举个例子来指导我?

我建议使用 pandas 来实现您想要的:

这是使用 pandas 的简单方法,考虑您的两个 csv 文件如下所示:

CSV1

reference,name,house
2348A,john,37
5648R,bill,3
RT48,kate,88
76A,harry ,433

CSV2

reference
2348A
76A

Code

import pandas as pd
df1 = pd.read_csv(r'd:\temp\data1.csv')
df2 = pd.read_csv(r'd:\temp\data2.csv')
df3 = pd.merge(df1,df2, on= 'reference', how='inner')
df3.to_csv('outpt.csv')

output.csv

,reference,name,house
0,2348A,john,37
1,76A,harry ,433

我建议使用 csvjoin 之类的工具,来自 csvkit

pip install csvkit
$ csvjoin --help
usage: csvjoin [-h] [-d DELIMITER] [-t] [-q QUOTECHAR] [-u {0,1,2,3}] [-b]
               [-p ESCAPECHAR] [-z MAXFIELDSIZE] [-e ENCODING] [-S] [-v] [-l]
               [--zero] [-c COLUMNS] [--outer] [--left] [--right]
               [FILE [FILE ...]]

示例: 向左加入[参考]

csvjoin --columns "reference" --left CSV1.csv CSV2.csv