Python合并两个CSV文件

在数据处理和分析中,经常会遇到需要合并两个CSV文件的情况。Python作为一门强大的数据处理工具,提供了多种方法来实现这一目标。在本文中,我们将重点介绍如何使用pandas库来合并两个CSV文件。
准备工作
在开始之前,我们需要确保已经安装了pandas库。如果没有安装,可以使用以下命令安装:
pip install pandas
另外,我们需要准备两个CSV文件作为示例数据。假设有两个文件:file1.csv和file2.csv,它们的内容分别如下:
file1.csv:
id,name,age
1,Alice,25
2,Bob,30
3,Charlie,35
file2.csv:
id,salary
1,50000
2,60000
3,70000
读取数据
首先,我们需要使用pandas库读取这两个CSV文件的内容。可以使用pandas中的read_csv函数来完成这一步骤:
import pandas as pd
df1 = pd.read_csv('file1.csv')
df2 = pd.read_csv('file2.csv')
print(df1)
print(df2)
运行以上代码,我们可以看到df1和df2分别存储了file1.csv和file2.csv的内容。现在我们得到了两个DataFrame对象,接下来需要将它们合并起来。
合并数据
横向合并
如果两个CSV文件的行对应的内容是一一对应的,我们可以使用pandas中的concat函数进行横向合并。假设两个文件的行数是相同的,我们可以按照id字段进行合并:
result = pd.concat([df1, df2['salary']], axis=1)
print(result)
运行以上代码,我们可以看到result中包含了df1和df2['salary']合并后的结果。最终的输出如下所示:
id name age salary
0 1 Alice 25 50000
1 2 Bob 30 60000
2 3 Charlie 35 70000
纵向合并
如果两个CSV文件的列对应的内容是一一对应的,我们可以使用pandas中的concat函数进行纵向合并。假设两个文件的列数是相同的,我们可以直接纵向合并:
result = pd.concat([df1, df2], axis=0)
print(result)
运行以上代码,我们可以看到result中包含了df1和df2合并后的结果。最终的输出如下所示:
id name age salary
0 1 Alice 25.0 NaN
1 2 Bob 30.0 NaN
2 3 Charlie 35.0 NaN
0 1 NaN NaN 50000.0
1 2 NaN NaN 60000.0
2 3 NaN NaN 70000.0
写入新文件
最后,我们可以将合并后的数据写入一个新的CSV文件中。可以使用to_csv函数将DataFrame对象保存为CSV文件:
result.to_csv('merged_file.csv', index=False)
运行以上代码,我们将合并后的数据写入了merged_file.csv文件中。
通过本文的介绍,我们学习了如何使用pandas库来合并两个CSV文件。pandas提供了多种方法来合并数据,可以根据具体的需求选择合适的方法。
极客教程