Python CSVkit比较CSV文件

时间:2016-04-22 15:47:30

标签: python csv csvkit

我有两个看起来像这样的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。有没有人可以指出我的方向?

2 个答案:

答案 0 :(得分:1)

我建议使用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')
  

<强> output.csv

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

答案 1 :(得分: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 ...]]

示例: 加入[参考]

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