python读取excel文件中每个工作簿,相同列合并至新的文件
时间: 2024-10-08 10:12:21 浏览: 36
自己用python写的EXCEL文件合并程序
在Python中,我们可以使用`pandas`库来读取Excel文件中的数据,并对相同的列进行合并。下面是一个基本的示例代码,该代码读取Excel文件中的每个工作簿,然后将相同的列合并到一个新的文件中。
首先,确保已经安装了`pandas`和`openpyxl`库。如果还未安装,可以使用以下命令进行安装:
```bash
pip install pandas openpyxl
```
以下是Python代码示例:
```python
import pandas as pd
import os
# 目标文件夹路径
folder_path = 'path_to_your_excel_files'
# 创建一个空的DataFrame来保存合并后的数据
merged_data = pd.DataFrame()
# 遍历文件夹中的所有Excel文件
for filename in os.listdir(folder_path):
if filename.endswith('.xlsx') or filename.endswith('.xls'):
file_path = os.path.join(folder_path, filename)
# 使用pandas读取Excel文件
df = pd.read_excel(file_path, engine='openpyxl')
# 检查是否有数据(即不是空的DataFrame)
if df.empty == False:
# 如果合并后的数据中已经有数据,则将新的数据添加到DataFrame中
merged_data = pd.concat([merged_data, df])
print(f"已合并 {filename}")
else:
print(f"未合并 {filename},因为它是空的")
# 将合并后的数据保存到新的Excel文件中
merged_data.to_excel('merged_data.xlsx', index=False)
```
这段代码首先遍历指定文件夹中的所有Excel文件,然后使用pandas的`read_excel`函数读取每个工作簿的数据。如果数据不为空(即不是空的DataFrame),则将新的数据添加到`merged_data`中。最后,将合并后的数据保存到一个新的Excel文件中。
注意:这段代码假设所有的Excel文件都在同一个文件夹中,并且所有的工作簿都有相同的列结构。如果有其他特殊情况,可能需要更复杂的处理方法。此外,此代码可能不适用于非常大的数据集,因为它可能会占用大量的内存。在这种情况下,你可能需要使用一些技术来限制内存使用,如分块读取和合并数据等。
阅读全文