В этой статье я собираюсь объяснить процесс объединения нескольких файлов CSV с Python Pandas. Я хочу изучить различные способы решения проблем, с которыми я столкнулся в организациях, не ориентированных на технологии, и я уверен, что многие сталкивались с этим (включая меня), каким бы элементарным он ни казался некоторым.

Файлы

На приведенном ниже снимке экрана представлены три файла, которые я хочу объединить:

Как видите, у меня есть общие случаи COVID-19 для 3 отдельных городов по дате публикации, и я хотел бы объединить их все в один набор данных.

Чтение одного файла

Чтобы упростить эту задачу, сначала будет полезно просто прочитать один CSV-файл, чтобы понять, какие типы данных, значения и столбцы у нас есть. Для этого мы можем прочитать один из CSV-файлов в Pandas DataFrame следующим образом:

import pandas as pd
df = pd.read_csv(‘Kettering Cases by Publish Date.csv’)

Это должно показать нам данные только по одному городу. Мы можем просмотреть первые пять строк этих данных со следующим синтаксисом:

df.head()

Мы также можем проверить наши типы данных, используя следующее:

df.dtypes

Теперь, когда мы знаем, как выглядят наши данные, а также наши типы данных, как теперь нам взять наши три CSV-файла и объединить их в один?

Импорт ОС и доступ к каталогу

Нам нужно получить доступ к каталогу (папке), в котором хранятся наши файлы CSV, чтобы мы могли использовать их в нашем коде. Для этого нам нужно будет импортировать ОС вот так.

import os

Затем мы можем проверить, где находится наш текущий каталог, используя синтаксис:

os.listdir()

Если мы не в папке, где находятся наши файлы, то мы можем изменить каталог, используя:

os.chdir(‘Combining CSV Files’)

Теперь, когда мы перечислим наш каталог, мы должны увидеть их здесь:

В зависимости от вашей операционной системы и местоположения файла этот процесс может отличаться, но это должно быть легко исправить Google.

Добавление наших файлов в переменную

Теперь мы хотим добавить эти файлы в наш каталог в переменную, и мы можем сделать это следующим образом:

files = [file for file in os.listdir()]

Теперь это будет отображаться точно так же, как наш os.listdir(), но этот список файлов будет назначен переменной, которую мы теперь можем использовать для объединения в один DataFrame.

Конкат

Теперь мы можем использовать Python map() для применения функции, которая будет считывать данные в DataFrame, и итерируемого объекта, который будет нашей файловой переменной. Это впоследствии прочитает все эти файлы в один DataFrame.

df = pd.concat(map(pd.read_csv, files), ignore_index=True)

Вызов df теперь объединит все наши файлы CSV в один. Мы можем сохранить наш df в файл CSV, используя:

df.to_csv(‘filename.csv’)

Это просто один из способов решения этой задачи, и существует множество различных способов объединения файлов CSV с помощью Pandas.