2016-08-25 5 views
0

데이터의 단일 열이있는 두 개의 CSV 파일이 있습니다. 두 번째 csv 파일의 데이터를 첫 번째 csv 파일의 데이터와 비교하여 현재 위치에서 제거 할 수 있습니까? 예를 들어 두 파일은 단지 하나의 열이있는 경우파이썬을 사용하여 CSV 파일의 데이터를 삭제 하시겠습니까?

import csv 
reader1 = csv.reader(open("file1.csv", "rb")) 
reader = csv.reader(open("file2.csv", "rb"))f 
for line in reader: 
    if line in reader1: 
     print line 

File 2

+0

가능한 중복 (http://stackoverflow.com/questions/7588934/deleting-columns-in-a-csv-with-python) – Razik

답변

0

, 당신은 차이를 제거 set를 사용할 수 있습니다. 그러나 이것은 각 파일의 항목을 복제 할 필요가없고 순서가 중요하지 않다고 가정합니다. [파이썬와 CSV의 열 삭제]의

#since each file is a column, unroll each file into a single list: 
dat1 = [x[0] for x in reader1] 
dat2 = [y[0] for y in reader] 

#take the set difference 
dat1_without_dat2 = set(dat1).difference(dat2) 
+0

결과 예외 트레이스 백 (가장 최근의 마지막 콜) : 파일 "C : /Users/cvs.py", 라인 8, dat1 = [x [reader1의 x는 [0]] TypeError : 목록 인덱스는 정수 여야하며, –

+1

목록은 지금은 고쳐 져야합니다, 죄송합니다, 나는 단지'R', 그러므로'x [[0]]'로 누군가를 돕고있었습니다. 'x [0]','y [0]', 작동해야 함 –

+0

괜찮습니다. –

관련 문제