두 csv 파일의 교집합 및 합집합 생성 정보

두 csv 파일의 교집합 및 합집합 생성 정보

두 파일 사이에 일부 겹치는 열이 있는 두 개의 csv 파일이 있습니다. 한 파일의 이름은 A.csv이고 다른 파일의 이름은 B.csv라고 가정합니다. A와 B의 교차점을 C라고 합니다.

세 개의 새로운 csv 파일을 생성하고 싶습니다. C; B에서 C를 뺀 부분 집합을 D라고 부르고 A와 D를 합친 것을 E라고 부릅니다.

무거운 프로그래밍 언어를 적용하지 않고 Linux/Unix에서 명령을 사용하여 이를 수행할 수 있는 방법이 있습니까?

답변1

나는 이것을 하기 위해 파이썬을 사용할 것입니다. 파이썬에 겁먹지 마세요. 파이썬은 이런 종류의 일에 아주 좋습니다. 귀하의 문제에 대한 나의 (대략적이고 테스트되지 않은) 해결책은 다음과 같습니다.

f_csv_1 = open("csv1.csv")
f_csv_2 = open("csv2.csv")

csv_1 = f_csv_1.readlines()
csv_2 = f_csv_2.readlines()

f_csv_1.close()
f_csv_2.close()

intersection = list(set(csv_1) & set(csv_2))
union = list(set(csv_1) | set(csv_2))

out_1 = open("intersection.csv", "w")

for row in intersection:
      out_1.write("%s" % row)

out_2 = open("union.csv", "w")

for row in union:
      out_2.write("%s" % row)

out_1.close()
out_2.close()

관련 정보