1

我有两个看起来像这样的 CSV 文件。

CSV 1

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

CSV2

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

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

4

2 回答 2

3

我建议使用pandas来实现您正在寻找的东西:

这里是使用 pandas 的简单方法,考虑你的两个 csv 文件是这样的:

CSV1

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

CSV2

reference
2348A
76A

代码

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')

输出.csv

,reference,name,house
0,2348A,john,37
1,76A,harry ,433
于 2016-04-22T20:47:54.620 回答
0

我建议使用csvkit中的csvjoin 之类的工具

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 ...]]

示例: [reference]列的连接

csvjoin --columns "reference" --left CSV1.csv CSV2.csv
于 2021-04-16T14:25:50.300 回答