利用Python pandas对Excel进行合并的方法示例

  • Post category:Python

下面是 “利用Python pandas对Excel进行合并的方法示例”的完整实例教程。

1. 导入pandas库

首先要导入pandas库,因为我们将使用pandas对Excel文件进行操作。可以使用以下代码导入:

import pandas as pd

2. 读取Excel文件

接下来,我们需要读取需要合并的Excel文件。在这个例子中,我们将同时合并两个Excel文件’file1.xlsx’和’file2.xlsx’。使用以下代码读取这两个文件:

file1 = pd.read_excel('file1.xlsx')
file2 = pd.read_excel('file2.xlsx')

3. 合并Excel数据

我们使用pandas的concat()函数来合并两个Excel文件的数据。以下是具体的代码:

merged_data = pd.concat([file1, file2], ignore_index=True)

这个代码块合并了file1和file2两个文件的数据,并将它们存储在merged_data中。’ignore_index=True’告诉pandas要重置合并数据的索引。

4. 将合并后的数据写入Excel

最后,我们使用pandas的to_excel()函数将合并后的数据写入新的Excel文件’output.xlsx’中。以下是具体的代码:

merged_data.to_excel('output.xlsx', index=False)

‘index=False’告诉pandas不要将数据的索引写入Excel文件中。

示例1

我们假设我们有两个Excel文件,名为’Book1.xlsx’和’Book2.xlsx’,每个文件包含两个列,名为’Name’和’Age’。以下是这两个文件的数据的样子:

File 'Book1.xlsx':

|  Name   |   Age  |
|---------|--------|
|  Alice  |   25   |
|  Bob    |   30   |

File 'Book2.xlsx':

|  Name   |   Age  |
|---------|--------|
|  Carol  |   35   |
|  David  |   40   |

我们要将这两个文件合并成一个文件。使用上述步骤,我们可以定义以下Python代码:

import pandas as pd

book1 = pd.read_excel('Book1.xlsx')
book2 = pd.read_excel('Book2.xlsx')

merged_data = pd.concat([book1, book2], ignore_index=True)
merged_data.to_excel('merged_data.xlsx', index=False)

这个代码块将’Book1.xlsx’和’Book2.xlsx’合并成一个Excel文件’merged_data.xlsx’,和下面的结果一样:

Result 'merged_data.xlsx':

|  Name   |   Age  |
|---------|--------|
|  Alice  |   25   |
|  Bob    |   30   |
|  Carol  |   35   |
|  David  |   40   |

示例2

假设我们有一个Excel文件’orders.xlsx’,它包含有关订单的信息,包括订单号,订单日期和订单金额:

File 'orders.xlsx':

| Order ID |   Date    |  Amount |
|----------|-----------|---------|
|   1001   | 01-Jan-20 |  1200   |
|   1002   | 01-Feb-20 |   800   |
|   1003   | 01-Mar-20 |   500   |

并且我们有另一个Excel文件’orderdetails.xlsx’,它包含有关订单细节的信息,如订单号,产品名称和单价:

File 'orderdetails.xlsx':

| Order ID | Product Name | Unit Price |
|----------|--------------|-----------|
|   1001   |      A       |    10     |
|   1001   |      B       |    5      |
|   1002   |      C       |    20     |
|   1002   |      D       |    15     |

现在我们想合并这两个文件,以在一个Excel文件中获得完整的订单信息。使用上述步骤,我们可以定义以下Python代码:

import pandas as pd

orders = pd.read_excel('orders.xlsx')
order_details = pd.read_excel('orderdetails.xlsx')

merged_data = pd.merge(orders, order_details, on='Order ID')
merged_data.to_excel('merged_orders.xlsx', index=False)

这个代码块将’orders.xlsx’和’orderdetails.xlsx’合并成一个Excel文件’merged_orders.xlsx’,并根据共同的列’Order ID’进行合并。合并后的Excel如下所示:

Result 'merged_orders.xlsx':

| Order ID |   Date    |  Amount | Product Name | Unit Price |
|----------|-----------|---------|--------------|-----------|
|   1001   | 01-Jan-20 |  1200   |       A      |    10     |
|   1001   | 01-Jan-20 |  1200   |       B      |    5      |
|   1002   | 01-Feb-20 |   800   |       C      |    20     |
|   1002   | 01-Feb-20 |   800   |       D      |    15     |
|   1003   | 01-Mar-20 |   500   |       -      |     -     |

请注意,因为’orderdetails.xlsx’中缺少订单’1003’的信息,所以在合并后的结果中,订单’1003’出现了-的占位符。

这样就是完整的 “利用Python pandas对Excel进行合并的方法示例”的实例教程了。希望对你有所帮助!