Объединить два файла CSV на основе данных из первого столбца - PullRequest
0 голосов
/ 27 января 2019

У меня есть два CSV-файла, как показано ниже, которые я хотел бы объединить - более или менее используя первый столбец ID_ в качестве уникального идентификатора и добавив столбец AMT в новую строку в конечном файле.

CSV1

ID_ CUSTOMER_ID_    EMAIL_ADDRESS_
1090    1   example1@example.com
1106    2   example2@example.com
1145    3   example3@example.com
1206    4   example4@example.com
1247    5   example5@example.com
1254    6   example6@example.com
1260    7   example7@example.com
1361    8   example8@example.com
1376    9   example9@example.com

CSV2


ID_ AMT
1090    5
1106    5
1145    5
1206    5
1247    5
1254    65
1260    5
1361    10
1376    5

Вот что я ищу в конечном файле:

ID_ CUSTOMER_ID_    EMAIL_ADDRESS_  AMT
1090    1   example1@example.com    5
1106    2   example2@example.com    5
1145    3   example3@example.com    5
1206    4   example4@example.com    5
1247    5   example5@example.com    5
1254    6   example6@example.com    65
1260    7   example7@example.com    5
1361    8   example8@example.com    10
1376    9   example9@example.com    5

Я попытался изменить это нижекак можно больше, но не в состоянии получить то, что я ищу.Действительно застрял на этом - не уверен, что еще я могу сделать.Очень ценю любую помощь!

join -t, File1.csv File2.csv

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

1 Ответ

0 голосов
/ 27 января 2019

Это легко сделать с помощью библиотеки Pandas.Вот мой код для этого:

'''
This program reads two csv files and merges them based on a common key column.
'''
# import the pandas library
# you can install using the following command: pip install pandas

import pandas as pd

# Read the files into two dataframes.
df1 = pd.read_csv('CSV1.csv')
df2 = pd.read_csv('CSV2.csv')

# Merge the two dataframes, using _ID column as key
df3 = pd.merge(df1, df2, on = 'ID_')
df3.set_index('ID_', inplace = True)

# Write it to a new CSV file
df3.to_csv('CSV3.csv')

Краткое руководство по пандам можно найти здесь: https://pandas.pydata.org/pandas-docs/stable/getting_started/10min.html

...