Объединить несколько csv с помощью python

Я новичок в python, и у меня есть точка, в которой я создал несколько CSV-файлов из больших текстовых файлов. Итак, мои csv выглядят ниже.

CSV1

ABC, 1

DEF, 2

GHI, 3

CSV2

ABC, 4

DEF, 5

GHI, 6

и т. д. для файлов до 15 csv.

Я хотел бы создать объединенный файл csv, который выглядит примерно так.

ABC, 1, 4

DEF, 2, 5

GHI, 3, 6

Любые указатели на то, как это сделать, оцениваются.

2 Solutions collect form web for “Объединить несколько csv с помощью python”

 import csv from collections import defaultdict csvs = ["data1.csv", "data2.csv"] for file in csvs: for line in csv.reader(open(file)): d.setdefault(line[0], []).append(line[1]) with open("result.csv", "w") as f: wrt = csv.writer(f) wrt.writerows([[k] + v for k, v in d.items()]) 

Предполагая, что все файлы CSV имеют одинаковую длину и содержат один и тот же первый столбец в том же порядке, что-то вроде этого может работать для вас:

 list_of_files = ['csv1.csv', 'csv2.csv', 'csv3.csv'] # Use the first file as a template with open(list_of_files[0], 'r') as f: output_text = [line.strip() for line in f] # Append the values to the end of the lines for fn in list_of_files[1:]: with open(fn, 'r') as f: for i, line in enumerate(f): key, value = line.strip().split(",") output_text[i] += "," + value # Dump result to new csv with open("result.csv", 'w') as f: f.write("\n".join(output_text)) 
  • Внедрение системы несвязанных наборов в Python
  • объединить два кадра данных без повторов pandas
  • Pandas Merge по имени и ближе к дате
  • python pandas объединяет две или более строки текста в одну строку
  • слияние словарей в недоступных
  • Панды оставили внешнее соединение нескольких кадров данных на нескольких столбцах
  • Объединение списков, содержащих общие элементы
  • Python: объединение простых списков на основе пересечений
  • Python - лучший язык программирования в мире.