簡體   English   中英

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 我試圖通過將它與 CSV2 進行比較來創建 CSV1 中行的輸出 CSV。 有沒有人有一個例子,他們可以指出我的方向?

我建議使用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

我建議使用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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM