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
我有两个类似这样的 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