下面是关于利用Python Pandas实现批量拆分Excel与合并Excel的完整实例教程。
前置条件
在开始之前,请确保你已经安装了以下工具/库:
- Python 3
- Pandas
Pandas是Python中一个用来进行数据分析和处理的库,它提供了DataFrame数据结构以及很多方便使用的数据操作工具,我们将使用它来读取和操作Excel文件。
实现步骤
批量拆分Excel
- 导入必要的库
import pandas as pd
import os
在这个例子中,我们需要使用pandas库来读取Excel文件,并且使用os库来操作文件路径。
- 定义Excel文件路径
folder_path = 'example_folder/' # Excel所在目录
file_extension = '.xlsx' # 文件扩展名
在这个例子中,我们将Excel文件存放在一个名为"example_folder"的文件夹中,并且我们只处理以".xlsx"结尾的文件。
- 获取文件夹中的所有Excel文件
files = [f for f in os.listdir(folder_path) if f.endswith(file_extension)]
我们可以使用os库的listdir函数来获取指定目录下的所有文件名列表,然后使用一个简单的列表推导式来过滤出所有符合我们设定的文件类型的Excel文件名。
- 逐一读取Excel文件并拆分
for f in files:
file_path = os.path.join(folder_path, f) # 文件绝对路径
df = pd.read_excel(file_path) # 读取Excel文件
for i, group in df.groupby('Column to split'): # 根据指定列参数拆分
group.to_excel(os.path.join(folder_path, 'output/' + i + '_' + f), index=False) # 文件保存路径
逐一读取所有Excel文件,然后按照Excel文件的指定列参数拆分,将每个拆分后的子集分别保存为一个新的Excel文件。
- 运行代码
现在,你可以将以上代码保存为一个Python文件并运行它,这样就可以对"example_folder"中的Excel文件实现批量拆分了。拆分后的文件将保存在"example_folder/output"文件夹中。
合并Excel
- 导入必要的库
import pandas as pd
import os
同样需要导入pandas和os库。
- 定义Excel文件路径
folder_path = 'example_folder/' # Excel所在目录
file_extension = '.xlsx' # 文件扩展名
output_file = 'merged_excel.xlsx' # 合并后的文件名
在这个例子中,我们需要将Excel文件存放在一个名为"example_folder"的文件夹中,并将合并后的Excel文件保存为"merged_excel.xlsx"。
- 获取文件夹中的所有Excel文件并合并
files = [f for f in os.listdir(folder_path) if f.endswith(file_extension)]
dfs = [pd.read_excel(os.path.join(folder_path, f)) for f in files] # 逐一读取Excel文件
merged_df = pd.concat(dfs, ignore_index=True) # 合并数据框
merged_df.to_excel(os.path.join(folder_path, output_file), index=False) # 文件保存路径
第三步获取指定目录下的所有Excel文件,并在一个列表中逐一读取Excel文件,最后使用pd.concat()函数将所有数据框合并为一个数据框,并将它保存为一个新的Excel文件。
- 运行代码
现在,你可以将以上代码保存为一个Python文件并运行它,这样就可以对"example_folder"中的Excel文件实现批量合并了。合并后的文件将保存在"example_folder"文件夹中,并命名为"merged_excel.xlsx"。
示例说明
- 示例1:批量拆分Excel
可以假设我们有一个名为"sales_data.xlsx"的Excel文件,其中包含了多个销售部门的销售数据。每个部门的销售数据都存储在一个名为"Department"的列中。我们想要将这些销售数据按照不同的部门分别保存为单独的Excel文件。
我们可以通过修改第4步代码来实现这个需求:
python
for i, group in df.groupby('Department'): # 根据Department列拆分
group.to_excel(os.path.join(folder_path, 'output/' + i + '_' + f), index=False) # 文件保存路径
- 示例2:合并Excel
假设我们有一个名为"monthly_sales.xlsx"的Excel文件,其中存储了不同月份的销售数据。我们想要将这些销售数据合并为一个Excel文件。
我们可以将代码文件的第2步和第3步进行如下修改:
python
folder_path = 'example_folder/monthly_sales/' # Excel所在目录
files = [f for f in os.listdir(folder_path) if f.endswith(file_extension)]
文件存放在一个名为"monthly_sales"的子文件夹中,我们只需要在文件路径中添加子文件夹的名称即可。
总结
通过以上步骤,我们成功实现了利用Python Pandas实现批量拆分Excel与合并Excel的内容。这些技巧可以在你的数据处理工作中节省大量时间。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:利用python Pandas实现批量拆分Excel与合并Excel - Python技术站