Як поєднати кілька файлів CSV з 8 рядками коду

Навіщо вам це?

Вставлення вручну копіювання - це нормально, якщо у вас не так багато файлів, з якими можна працювати.

Але уявіть, якщо у вас є понад 100 файлів для об’єднання - чи готові ви це зробити вручну? Повторювати це повторно нудно і схильно до помилок.

Якщо всі файли мають однакову структуру таблиці (однакові заголовки та кількість стовпців), нехай цей крихітний сценарій Python виконує роботу.

Крок 1: Імпортуйте пакети та встановіть робочий каталог

Змініть “/ mydir” на потрібний робочий каталог.

import os import glob import pandas as pd os.chdir("/mydir")

Крок 2: Використовуйте glob, щоб відповідати шаблону 'csv'

Зіставте шаблон ('csv') і збережіть список імен файлів у змінній 'all_filenames'. Ви можете переглянути це посилання, щоб дізнатись більше про відповідність регулярних виразів.

extension = 'csv' all_filenames = [i for i in glob.glob('*.{}'.format(extension))]

Крок 3: Об’єднайте всі файли у списку та експортуйте як CSV

Використовуйте панди для об’єднання всіх файлів у списку та експорту як CSV. Вихідний файл із назвою «compi_csv.csv» знаходиться у вашому робочому каталозі.

#combine all files in the list combined_csv = pd.concat([pd.read_csv(f) for f in all_filenames ]) #export to csv combined_csv.to_csv( "combined_csv.csv", index=False, encoding="utf-8-sig")

encoding = 'utf-8-sig' додано, щоб подолати проблему при експорті 'неанглійських' мов.

І ... це зроблено!

Ця стаття була натхненна моєю фактичною повсякденною проблемою, а структура кодування - з дискусії про stackoverflow. Завершений сценарій для цього інструкції задокументований на GitHub.

Дякую за читання. Спробуйте, розважтесь та повідомте мені свій відгук!

Якщо вам подобається те, що я робив, подумайте про те, щоб стежити за мною на GitHub, Medium та Twitter. Обов’язково позначте його зірочкою на GitHub: P