Python批量合并Excel同名工作表
版权申诉
5星 · 超过95%的资源 21 浏览量
更新于2024-08-10
4
收藏 13KB DOCX 举报
"该资源是关于使用Python自动化合并多个Excel文件中同名Sheet的方法。"
在日常办公中,处理大量Excel表格数据时,有时需要将不同文件中的同名Sheet合并到一起,以便于管理和分析。Python作为一个强大的编程语言,提供了pandas库来方便地操作Excel数据。本示例中,通过Python实现这一功能,步骤如下:
首先,导入必要的库,包括pandas(用于数据处理)和os(用于文件操作):
```python
import pandas as pd
import os
```
接下来,创建一个集合`all_fname`来存储所有Sheet的名字,以及一个列表`dfs`来存放读取到的数据:
```python
all_fname = set() # 存储所有Sheet名字的集合
dfs = [] # 存放数据的列表
```
然后,使用`os.listdir()`遍历指定目录下的所有文件,并筛选出`.xlsx`格式的文件:
```python
filelists = os.listdir('C:/Users/Administrator/PycharmProjects/excel/多个excel的同名工作表的合并')
for fname in filelists:
if fname.endswith('.xlsx') and fname != 'all_data.xlsx':
# ...
```
对每个符合条件的Excel文件,使用`pd.read_excel()`读取所有Sheet的内容,并将其添加到`dfs`列表中:
```python
df = pd.read_excel(fname, header=None, sheet_name=None)
dfs.append(df)
```
在遍历过程中,将所有Sheet的名称添加到`all_fname`集合中,以便后续使用:
```python
for sh in df:
all_fname.add(sh)
```
创建一个新的Excel写入器`writer`,它可以用来保存合并后的数据:
```python
writer = pd.ExcelWriter('all_data.xlsx')
```
接着,遍历`all_fname`中的每个Sheet名,收集同名Sheet的数据,并使用`pd.concat()`拼接这些数据:
```python
data_li = [] # 存放相同工作表名的数据
for data in dfs:
n_rows = data_li.append(data[sheet_name])
group_data = pd.concat(data_li) # 拼接同名数据
```
最后,将拼接后的数据写入`writer`,并保存到新的Excel文件中:
```python
group_data.to_excel(writer, sheet_name=sheet_name, index=False)
```
完成所有Sheet的处理后,保存整个工作簿:
```python
writer.save()
```
这个Python脚本的执行结果是,它会将指定目录下所有Excel文件中同名的Sheet合并到一个名为`all_data.xlsx`的新Excel文件中,便于集中查看和处理数据。这种方法极大地提高了处理大量Excel数据的效率,尤其适合需要跨文件整理和比较数据的场景。
2023-06-30 上传
2022-05-27 上传
2021-02-04 上传
2023-06-11 上传
2023-06-28 上传
2023-04-07 上传
2023-03-28 上传
2023-06-08 上传
2023-03-28 上传