Python

Зачем это нужно?

Копипаст вручную — это, может, и не самый плохой вариант для небольшого количества файлов.

Но представьте, что вам нужно объединить 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

Воспользуйтесь pandas для объединения файлов в список и экспорта в CSV. На выходе получится файл “combined_csv.csv”. Найти его можно в рабочей директории.

Для экспорта «неанглийских» языков добавляется encoding = ‘utf-8-sig’.

#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')

И… готово!

Перевод статьи Ekapope Viriyakovithya: How to combine multiple CSV files with 8 lines of code

Предыдущая статьяПолезные Python модули, которыми мало кто пользуется
Следующая статьяШесть рекомендаций для начинающих специалистов по Data Science