合并多个Excel文件中同名的Sheet可以通过Python的pandas库来实现。具体步骤如下:
- 安装pandas库
在终端中输入以下命令安装pandas库:
pip install pandas
- 导入pandas库
在Python代码文件中导入pandas库:
import pandas as pd
- 读取Excel文件
使用pandas库的read_excel()函数读取Excel文件。该函数的参数包括文件名、sheet名称或sheet索引等。如下实例中,读取两个Excel文件,其中file1.xlsx文件中包含两个同名sheet(Sheet1),file2.xlsx文件中只有一个Sheet1。
df1 = pd.read_excel('file1.xlsx', sheet_name='Sheet1')
df2 = pd.read_excel('file1.xlsx', sheet_name='Sheet1')
df3 = pd.read_excel('file2.xlsx', sheet_name='Sheet1')
- 合并同名sheet
通过pandas的concat()函数合并同名sheet。该函数的参数为需要合并的DataFrame列表,其中axis=0表示竖向合并,axis=1表示横向合并。同时需要注意使用ignore_index参数将每个DataFrame的索引合并。
df_list = [df1, df2, df3]
merged_df = pd.concat(df_list, axis=0, ignore_index=True)
- 输出合并后的结果
通过to_excel()函数将合并后的结果输出到一个新的Excel文件中。
merged_df.to_excel('merged.xlsx', index=False)
示例1:
现有两个Excel文件file1.xlsx和file2.xlsx,其中file1.xlsx文件中包含两个同名sheet(Sheet1),file2.xlsx文件中只有一个Sheet1。需要将同名Sheet1进行合并。
|--file1.xlsx--|
| - Sheet1 |
| a | b |
| 1 | 2 |
| - Sheet1 |
| c | d |
| 3 | 4 |
|--file2.xlsx--|
| - Sheet1 |
| e | f |
| 5 | 6 |
import pandas as pd
df1 = pd.read_excel('file1.xlsx', sheet_name='Sheet1')
df2 = pd.read_excel('file1.xlsx', sheet_name='Sheet1')
df3 = pd.read_excel('file2.xlsx', sheet_name='Sheet1')
df_list = [df1, df2, df3]
merged_df = pd.concat(df_list, axis=0, ignore_index=True)
merged_df.to_excel('merged.xlsx', index=False)
合并后的结果:
|--merged.xlsx--|
| - Sheet1 |
| a | b |
| 1 | 2 |
| - Sheet1 |
| c | d |
| 3 | 4 |
| - Sheet1 |
| e | f |
| 5 | 6 |
示例2:
现有三个Excel文件file1.xlsx、file2.xlsx和file3.xlsx,其中file1.xlsx文件中包含两个同名sheet(Sheet1),file2.xlsx文件中也包含一个同名Sheet1,file3.xlsx文件中包含一个名为Sheet2的Sheet。需要将同名Sheet1进行合并。
|--file1.xlsx--|
| - Sheet1 |
| a | b |
| 1 | 2 |
| - Sheet1 |
| c | d |
| 3 | 4 |
|--file2.xlsx--|
| - Sheet1 |
| e | f |
| 5 | 6 |
|--file3.xlsx--|
| - Sheet2 |
| g | h |
| 7 | 8 |
import pandas as pd
df1 = pd.read_excel('file1.xlsx', sheet_name='Sheet1')
df2 = pd.read_excel('file2.xlsx', sheet_name='Sheet1')
df3 = pd.read_excel('file3.xlsx', sheet_name='Sheet2')
df_list = [df1, df2]
if 'Sheet1' in df3:
df3 = pd.read_excel('file3.xlsx', sheet_name='Sheet1')
df_list.append(df3)
merged_df = pd.concat(df_list, axis=0, ignore_index=True)
merged_df.to_excel('merged.xlsx', index=False)
合并后的结果:
|--merged.xlsx--|
| - Sheet1 |
| a | b |
| 1 | 2 |
| - Sheet1 |
| c | d |
| 3 | 4 |
| - Sheet1 |
| e | f |
| 5 | 6 |
其中并未包含Sheet2,因为它不是同名Sheet1。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python 合并多个excel中同名的sheet - Python技术站