下面是Python将多个Excel文件合并成一个文件的完整实例教程。
1. 确定合并方式
在合并多个Excel文件之前,需要先确定合并方式。常见的合并方式包括两种:
- 合并Excel文件的所有工作表
- 合并Excel文件的指定工作表
2. 导入相关库
在Python中,我们需要使用Pandas库来实现Excel文件的读写操作。因此,首先需要导入相关库。
import pandas as pd
import os
3. 读取多个Excel文件
在读取多个Excel文件之前,首先需要确定需要读取的Excel文件所在的目录。本例中,我们将多个Excel文件放置在文件夹“example”中,该文件夹与Python脚本在同一级目录下。
path = "./example"
files = os.listdir(path)
其中,os.listdir()方法用于返回指定目录下的文件列表。
然后,我们可以使用Pandas库的read_excel()方法读取多个Excel文件。另外,为了区分多个Excel文件读入的数据,需要为每个读入的数据添加一个标识列。在本例中,我们使用文件名作为标识列的值。
df_list = []
for file in files:
if file.endswith(".xlsx"):
df = pd.read_excel(os.path.join(path, file))
df["file_name"] = file
df_list.append(df)
4. 合并多个Excel文件
在确定了需要合并的数据集之后,即可使用Pandas库的concat()方法将多个数据集合并为一个数据集,具体代码如下:
merged_df = pd.concat(df_list)
5. 将合并后的数据保存为Excel文件
最后,将合并后的数据保存为Excel文件,并存储在指定路径下。
merged_df.to_excel("./merged_file.xlsx", index=False)
完整代码如下:
import pandas as pd
import os
path = "./example"
files = os.listdir(path)
df_list = []
for file in files:
if file.endswith(".xlsx"):
df = pd.read_excel(os.path.join(path, file))
df["file_name"] = file
df_list.append(df)
merged_df = pd.concat(df_list)
merged_df.to_excel("./merged_file.xlsx", index=False)
示例说明1:合并多个Excel文件的所有工作表
现在,我们有3个Excel文件,分别为“data1.xlsx”、“data2.xlsx”和“data3.xlsx”,每个Excel文件中都包含多个工作表。
假设我们需要将这3个Excel文件中的所有工作表合并成一个Excel文件,即将“data1.xlsx”、“data2.xlsx”和“data3.xlsx”合并为一个文件。
首先,将这3个Excel文件放置到与Python脚本相同的目录下。然后,按照以上步骤操作,将这3个Excel文件中的数据合并为一个数据集,并将合并后的数据保存为一个Excel文件。
示例代码如下:
import pandas as pd
import os
path = "./"
files = os.listdir(path)
df_list = []
for file in files:
if file.endswith(".xlsx"):
df = pd.read_excel(os.path.join(path, file), sheet_name=None)
for sheet_name in df.keys():
df[sheet_name]["file_name"] = file
df[sheet_name]["sheet_name"] = sheet_name
df_list.append(df)
merged_df = pd.concat(df_list, axis=0, ignore_index=True)
merged_df.to_excel("./merged_file.xlsx", index=False)
示例说明2:合并指定Excel文件指定工作表
假设我们有两个Excel文件,“data1.xlsx”和“data2.xlsx”,每个Excel文件中都包含3个工作表。现在,我们需要将这两个Excel文件的第二个工作表合并成一个Excel文件。
首先,将这两个Excel文件放置到与Python脚本相同的目录下。然后,按照以下步骤操作,将这两个Excel文件中的第二个工作表合并为一个数据集,并将合并后的数据保存为Excel文件。
示例代码如下:
import pandas as pd
import os
path = "./"
files = ["data1.xlsx", "data2.xlsx"]
sheets = ["Sheet2"]
df_list = []
for file in files:
if file.endswith(".xlsx"):
df = pd.read_excel(os.path.join(path, file), sheet_name=sheets)
for sheet_name in df.keys():
df[sheet_name]["file_name"] = file
df[sheet_name]["sheet_name"] = sheet_name
df_list.append(df)
merged_df = pd.concat(df_list, axis=0, ignore_index=True)
merged_df.to_excel("./merged_file.xlsx", index=False)
注意,这里需要将待合并的工作表指定为一个列表,通过sheet_name参数传递给read_excel()方法。同时,我们也可以设置files和sheets变量,来指定待合并的Excel文件和工作表。