根据第一列中的数据合并两个 CSV 文件

Posted

技术标签:

【中文标题】根据第一列中的数据合并两个 CSV 文件【英文标题】:Merge two CSV files based on a data from the first column 【发布时间】:2019-06-20 08:27:43 【问题描述】:

我有两个想要合并的 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,并将包含逗号作为分隔符。

【问题讨论】:

我在我的 linux 机器上运行了你的 join 命令并得到了正确的输出。你在运行什么系统?我能想到的可能是您的join 版本不同,或者换行符有误。 【参考方案1】:

这可以使用 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')

您可以在此处找到有关 pandas 的简短教程: https://pandas.pydata.org/pandas-docs/stable/getting_started/10min.html

【讨论】:

天哪——这很有帮助。这正是我想要的。非常感谢! 这是我在 *** 上的第一个答案。很高兴我能帮助你。 :-)

以上是关于根据第一列中的数据合并两个 CSV 文件的主要内容,如果未能解决你的问题,请参考以下文章

如何将一列中的两列合并为日期与熊猫?

合并第二列到最后一列以获取第一列中的重复项

将一列附加到多个 csv 文件中,每行包含一个常量

将python字典写入CSV列:第一列的键,第二列的值

如何在数据工厂中获取 CSV 的第一行和第一列值?

R:在第一列中按重复项合并行