用python删除excel中不同表中和列名相同的行,并加载进新excel中
时间: 2023-08-21 18:01:52 浏览: 79
可以使用`pandas`库来实现这个功能。具体步骤如下:
1. 读取Excel文件为字典,每个键值对应一个sheet的数据框
2. 对于每个sheet,获取列名列表
3. 删除与列名相同的行
4. 将数据框写入新的Excel文件
以下是示例代码:
```python
import pandas as pd
# 读取Excel文件为字典,每个键值对应一个sheet的数据框
sheets_dict = pd.read_excel('example.xlsx', sheet_name=None)
# 新建一个字典,保存处理后的每个sheet的数据框
new_sheets_dict = {}
# 遍历每个sheet
for sheet_name, sheet_df in sheets_dict.items():
# 获取列名列表
cols = sheet_df.columns.tolist()
# 删除与列名相同的行
sheet_df = sheet_df.loc[~sheet_df[cols[0]].isin(cols)]
# 将数据框保存到新的字典中
new_sheets_dict[sheet_name] = sheet_df
# 将新的字典写入Excel文件
with pd.ExcelWriter('new_example.xlsx') as writer:
for sheet_name, sheet_df in new_sheets_dict.items():
sheet_df.to_excel(writer, sheet_name=sheet_name, index=False)
```
注意:这里使用`sheet_name=None`来表示读取所有sheet,如果需要指定读取某个或某些sheet,可以将其设置为一个字符串或一个字符串列表。另外,这里假设每个sheet的第一列为列名,如果不是,需要修改`cols[0]`为对应列的列名。同时,这里的删除是根据列名完全匹配进行删除的,如果需要模糊匹配可以使用正则表达式等方式进行处理。最后,由于需要写入多个sheet,所以需要使用`pd.ExcelWriter`来进行文件写入。
阅读全文