以下是使用 pandas 库中的 read_excel 函数和 MultiIndex 类型来读取合并单元格表头,操作excel文件“data\推送名单.xlsx”,遍历循环读取所有sheet表,读取表头“接收人工号”的所在列数据data1和读取合并单元格表头“推送内容”的所在的合并列的所有数据data2(示列:B列,C列,D列的第一行为合并单元格,单元格表头值为“推送内容”),合并data1,data2为一个总数据data,
时间: 2024-03-09 07:47:56 浏览: 130
好的,我理解了你的问题。以下是使用 pandas 库中的 read_excel 函数和 MultiIndex 类型来读取合并单元格表头,操作excel文件“data\推送名单.xlsx”,遍历循环读取所有sheet表,读取表头“接收人工号”的所在列数据data1和读取合并单元格表头“推送内容”的所在的合并列的所有数据data2(示列:B列,C列,D列的第一行为合并单元格,单元格表头值为“推送内容”),合并data1,data2为一个总数据data的代码:
```python
import pandas as pd
file_path = "data/推送名单.xlsx"
xls = pd.ExcelFile(file_path)
data = pd.DataFrame()
for sheet_name in xls.sheet_names:
df = pd.read_excel(file_path, sheet_name=sheet_name, header=[0,1])
data1 = df.loc[:, ('接收人信息', '接收人工号')]
data2 = df.loc[:, ('推送内容', slice(None))]
data2.columns = data2.columns.droplevel()
data2 = data2.dropna(how='all', axis=1)
merged_data = pd.concat([data1, data2], axis=1)
data = pd.concat([data, merged_data], axis=0)
print(data)
```
其中,pd.read_excel 函数用于读取 excel 文件,header 参数用于指定表头的行数,使用 MultiIndex 类型读取合并单元格表头;data1 和 data2 分别用于读取“接收人工号”列和合并单元格表头“推送内容”的所在的合并列数据;使用 pd.concat 函数将 data1 和 data2 合并为 merged_data;使用 for 循环遍历所有 sheet 表,将 merged_data 合并为总数据 data。
阅读全文