python拼接多个execl表格,保留前几行标题,保存到新文档
时间: 2023-08-22 21:05:07 浏览: 106
基于Python实现保留格式复制多个excel工作表到汇总表并生成目录
如果你想保留每个 Excel 表格的标题,可以将每个表格的标题行单独读取出来,并将其作为新的数据框的列名。具体实现步骤如下:
1. 导入 Pandas 库。
```python
import pandas as pd
```
2. 指定要拼接的表格文件名列表。
```python
filenames = ['file1.xlsx', 'file2.xlsx', 'file3.xlsx']
```
3. 使用 Pandas 库的 `read_excel()` 函数读取每个表格的数据,并将标题行单独读取出来。
```python
dataframes = []
headers = []
for filename in filenames:
df = pd.read_excel(filename)
header = df.iloc[:3] # 假设标题行在前三行
headers.append(header)
dataframes.append(df.iloc[3:]) # 去掉标题行后的数据
```
4. 使用 Pandas 库的 `concat()` 函数将数据框拼接在一起。此处需要指定 `axis=0`,表示按行拼接;`ignore_index=True`,表示忽略原始数据框的索引。
```python
result = pd.concat(dataframes, axis=0, ignore_index=True)
```
5. 将标题行合并为一个数据框,并使用 `fillna()` 函数将空值填充为前一个非空值。然后将标题行作为新数据框的列名。
```python
header = pd.concat(headers, axis=1, ignore_index=True)
header = header.fillna(method='ffill')
result.columns = header.iloc[0]
```
6. 将拼接后的结果保存到新的 Excel 文件中。此处需要使用 Pandas 库的 `to_excel()` 函数,并指定保存的文件名。
```python
result.to_excel('output.xlsx', index=False)
```
完整代码示例如下:
```python
import pandas as pd
# 指定要拼接的表格文件名列表
filenames = ['file1.xlsx', 'file2.xlsx', 'file3.xlsx']
# 使用 Pandas 库的 read_excel() 函数读取每个表格的数据,并将标题行单独读取出来
dataframes = []
headers = []
for filename in filenames:
df = pd.read_excel(filename)
header = df.iloc[:3] # 假设标题行在前三行
headers.append(header)
dataframes.append(df.iloc[3:]) # 去掉标题行后的数据
# 使用 Pandas 库的 concat() 函数将数据框拼接在一起
result = pd.concat(dataframes, axis=0, ignore_index=True)
# 将标题行合并为一个数据框,并使用 fillna() 函数将空值填充为前一个非空值
header = pd.concat(headers, axis=1, ignore_index=True)
header = header.fillna(method='ffill')
# 将标题行作为新数据框的列名
result.columns = header.iloc[0]
# 将拼接后的结果保存到新的 Excel 文件中
result.to_excel('output.xlsx', index=False)
```
这样就可以将多个 Excel 表格拼接在一起,并将结果保存到新的 Excel 文件中,同时保留每个表格的标题行。其中,`index=False` 表示不保存索引信息。
阅读全文