以下是详细讲解“Python合并多个Excel数据的方法”的完整实例教程。
背景
在工作中,经常会遇到需要合并多个Excel数据的情况,手动合并往往耗时费力。而Python提供了多种方法可以用来合并多个Excel数据,本文将介绍其中一种基于pandas
和openpyxl
的方法。
准备工作
在开始实例之前,我们需要安装以下依赖库:
- pandas
- openpyxl
可以通过以下命令安装:
pip install pandas openpyxl
另外,我们还需要准备至少两个Excel文件作为实例,这里随便找两个Excel文件进行合并。
实现步骤
1. 读取Excel数据
首先,我们需要读取每个Excel数据,这可以通过pandas
库的read_excel
方法实现。
import pandas as pd
df1 = pd.read_excel('file1.xlsx')
df2 = pd.read_excel('file2.xlsx')
其中,read_excel
方法中的参数为Excel文件路径。
2. 合并数据
读取完数据之后,我们需要将数据合并起来。这里我们采用pandas
库的concat
方法将数据按行合并。
merged_df = pd.concat([df1, df2])
其中,concat
方法中的参数为一个包含需要合并的数据的列表。
3. 写入Excel
最后,我们需要将合并后的数据写入一个新的Excel文件中,这里我们采用openpyxl
库创建新的Excel文件,并使用pandas
库的to_excel
方法将合并后的数据写入到Excel文件中。
from openpyxl import Workbook
wb = Workbook()
sheet = wb.active
for r in dataframe_to_rows(merged_df, index=False, header=True):
sheet.append(r)
wb.save('merged.xlsx')
其中,dataframe_to_rows
方法是将pandas
数据转换为可写入Excel的行形式,index
和header
参数分别表示是否包括行索引和列标题。
示例说明
以下是两个示例,用于演示如何合并多个Excel数据:
示例1
假设我们有两个Excel文件,分别为file1.xlsx
和file2.xlsx
,其中file1.xlsx
的内容如下:
Name | Age | Gender |
---|---|---|
Alice | 20 | Female |
Bob | 25 | Male |
Cathy | 22 | Female |
file2.xlsx
的内容如下:
Name | Age | Gender |
---|---|---|
Dave | 30 | Male |
Ellen | 28 | Female |
我们需要将这两个Excel文件中的数据合并成一个Excel文件merged.xlsx
,代码如下:
import pandas as pd
from openpyxl import Workbook
from openpyxl.utils.dataframe import dataframe_to_rows
# 读取Excel数据
df1 = pd.read_excel('file1.xlsx')
df2 = pd.read_excel('file2.xlsx')
# 合并数据
merged_df = pd.concat([df1, df2])
# 写入Excel
wb = Workbook()
sheet = wb.active
for r in dataframe_to_rows(merged_df, index=False, header=True):
sheet.append(r)
wb.save('merged.xlsx')
执行以上代码后,将得到一个名为merged.xlsx
的Excel文件,其中包含所有数据,如下:
Name | Age | Gender |
---|---|---|
Alice | 20 | Female |
Bob | 25 | Male |
Cathy | 22 | Female |
Dave | 30 | Male |
Ellen | 28 | Female |
示例2
假设我们有三个Excel文件,分别为data1.xlsx
、data2.xlsx
和data3.xlsx
,其中每个Excel文件包含的列名和数据量均不相同,我们需要将这三个Excel文件中的数据合并成一个Excel文件merged.xlsx
,代码如下:
import pandas as pd
from openpyxl import Workbook
from openpyxl.utils.dataframe import dataframe_to_rows
# 读取Excel数据
df1 = pd.read_excel('data1.xlsx')
df2 = pd.read_excel('data2.xlsx')
df3 = pd.read_excel('data3.xlsx')
# 合并数据
merged_df = pd.concat([df1, df2, df3])
# 写入Excel
wb = Workbook()
sheet = wb.active
for r in dataframe_to_rows(merged_df, index=False, header=True):
sheet.append(r)
wb.save('merged.xlsx')
执行以上代码后,将得到一个名为merged.xlsx
的Excel文件,其中包含所有数据,具体内容取决于三个原始Excel文件中包含的列名和数据量。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python合并多个Excel数据的方法 - Python技术站