Поиск по сайту:

Как объединить множество файлов TSV по общему ключу с помощью Python Pandas?


Если вы работаете с данными, вам, вероятно, приходилось сталкиваться с проблемой объединения нескольких файлов в один связный набор данных. Эта задача может оказаться особенно сложной, если вы работаете с файлами со значениями, разделенными табуляцией (TSV). К счастью, библиотека Python Pandas предоставляет простое решение для объединения файлов TSV по общему ключу.

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

Что такое файлы TSV?

Файлы TSV представляют собой тип текстового файла с разделителями, в котором в качестве разделителя между значениями используются табуляции. Этот формат аналогичен файлам со значениями, разделенными запятыми (CSV), в которых в качестве разделителя используются запятые. Файлы TSV часто используются для представления данных, содержащих запятые, например адресов или имен, содержащих запятую. Используя табуляцию вместо запятых, файлы TSV позволяют избежать путаницы, которая может возникнуть из-за присутствия запятых в данных.

Pandas предоставляет широкий спектр функций для манипулирования и анализа данных, включая функции для чтения и записи файлов TSV.

Действия по объединению разных файлов TSV по общему ключу с помощью Pandas

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

Давайте посмотрим, как объединить разные файлы TSV по общему ключу с помощью Pandas:

Шаг 1. Загрузите различные файлы TSV в кадры данных Pandas.

Наш первый шаг к объединению файлов — загрузить каждый файл TSV в DataFrame Pandas. Мы можем сделать это, используя функцию Pandas read_csv(), которая может читать файлы TSV, а также файлы CSV.

Теперь предположим, что у нас есть три файла TSV, которые мы хотим объединить: person.tsv, orderdetails.tsv и Productdetails.tsv. Каждый из этих файлов содержит разные аспекты наших данных:

  • person.tsv содержит информацию о наших людях, такую как их имя, адрес электронной почты и номер телефона.

  • orderdetails.tsv содержит информацию о деталях заказа, размещенного нашими лицами, такую как дата заказа и общая стоимость.

  • Productdetails.tsv содержит информацию о деталях продукта, который мы продаем, например название продукта и цену.

Теперь мы загрузим каждый файл в DataFrame Pandas. Для этого мы будем использовать следующий код:

import pandas as pd
persons = pd.read_csv('persons.tsv', sep='\t')
orderdetails = pd.read_csv('orderdetails.tsv', sep='\t')
productdetails = pd.read_csv('productdetails.tsv', sep='\t')

Шаг 2. Проверьте фреймы данных

Следующим шагом после загрузки каждого файла TSV в отдельный DataFrame Pandas является проверка каждого DataFrame, чтобы убедиться, что данные загружены правильно. Для этого мы будем использовать функцию head(), используемую для отображения первых нескольких строк фрейма данных.

print(persons.head())
print(orderdetails.head())
print(productdetails.head())

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

Шаг 3. Объедините фреймы данных

Теперь, когда каждый файл TSV загружен в отдельный DataFrame Pandas, мы можем объединить данные в единый связный набор данных. Для этого мы воспользуемся функцией merge(), предоставляемой Pandas.

Функция merge() объединяет два DataFrame в один DataFrame на основе общего ключа. В нашем случае общим ключом является идентификатор клиента. Сначала мы объединим DataFrame person с DataFrame orderdetails, а затем объединим полученный DataFrame с DataFrame Productdetails.

# Merge persons and orderdetails
customer_orderdetails = pd.merge(persons, orderdetails, on='customer_id')

# Merge customer_orderdetails and productdetails
merged_data = pd.merge(customer_orderdetails, productdetails, on='product_id')

Функция merge() принимает на вход два DataFrame и аргумент, определяющий общий ключ, используемый для слияния. В нашем случае общим ключом является столбец customer_id в DataFrame person и DataFrame orderdetails, а также столбец Product_id в DataFrame customer_orderdetails и DataFrame Productdetails.

Результирующий DataFrame merged_data содержит всю информацию из исходных файлов TSV, объединенную в единый связный набор данных.

Шаг 4: Сохранение файла

Наконец, мы можем сохранить объединенные данные в файл TSV, используя функцию to_csv(), предоставляемую Pandas.

merged_data.to_csv('merged_data.tsv', sep='\t', index=False)

Пример

Давайте рассмотрим следующий пример. У нас есть три файла TSV: mydata1.tsv, mydata2.tsv и mydata3.tsv. Каждый файл содержит одни и те же столбцы: идентификатор, имя и контакт.

В приведенном ниже примере мы использовали функцию concat(), которая принимает список DataFrame в качестве входных данных и объединяет их в один DataFrame. По умолчанию concat() объединяет DataFrames вертикально, то есть укладывает их друг на друга. В этом примере, поскольку три файла TSV имеют одинаковые столбцы, результирующий объединенный DataFrame также будет иметь те же столбцы.

import pandas as pd
# Load different TSV files into DataFrames
mydf1 = pd.read_csv('mydata1.tsv', sep='\t')
mydf2 = pd.read_csv('mydata2.tsv', sep='\t')
mydf3 = pd.read_csv('mydata3.tsv', sep='\t')

# Merge DataFrames using concat()
mymerged_data = pd.concat([mydf1, mydf2, mydf3])

# Save merged data to TSV file
mymerged_data.to_csv('merged_data.tsv', sep='\t', index=False)

Выход

Name    Age    City
John    25     London
Emily   32     New York
David   41     Paris
Sophie  29     Berlin
Michael 37     Sydney
Emma    31     Toronto

Пример

Давайте рассмотрим следующий пример. У нас есть два файла TSV: myproductdetails.tsv и mysales.tsv. Файл myproductdetails.tsv содержит информацию о сведениях о продукте, а файл mysales.tsv — информацию о транзакциях продаж. Оба файла содержат столбец Product_id, который мы будем использовать в качестве общего ключа для объединения файлов.

import pandas as pd

# Load TSV files into DataFrames
myproductdetailsdf = pd.read_csv('myproductdetails.tsv', sep='\t')
mysalesdf = pd.read_csv('mysales.tsv', sep='\t')

# Merge DataFrames using merge()
mymerged_data = pd.merge(myproductdetailsdf, mysalesdf, on='product_id')

# Save merged data to TSV file
mymerged_data.to_csv('mymerged_data.tsv', sep='\t', index=False)

Выход

Name    Age    City
John    25     London
Emily   32     New York
David   41     Paris
Sophie  29     Berlin
Michael 37     Sydney
Emma    31     Toronto

В приведенном выше примере мы использовали функцию merge(), чтобы принять два DataFrame в качестве входных данных и аргумент, указывающий общий ключ, который будет использоваться для слияния. В этом примере мы объединяем фреймы данных myproductdetailsdf и mysalesdf на основе столбца product_id. Полученный объединенный DataFrame будет содержать все столбцы из обоих DataFrame, причем строки сопоставляются на основе общего ключа.

Заключение

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

Статьи по данной тематике: