# -*- coding: UTF-8 -*-
'''
pandas操作xlsx表格,删除在指定列表中某字段所在的行
'''
import pandas as pd
excel_path = "文件路径.xlsx"
# 读取原始xlsx表格
df = pd.read_excel(excel_path , sheet_name="sheet1")
# print(df)
# 定义指定姓名列表
names = ['孙涛', '孙明']
#strip操作,这一步踩坑了,因为我的xlsx数据中,好多字段旁边都有空格、制表符,导致下面的isin()匹配不到列表
df = df.applymap(lambda x: x.strip() if isinstance(x, str) else x)
# 删除姓名列中在names列表中的所有行
df = df[~df['姓名'].isin(names)]
# print(df)
# 保存修改后的数据到自定义名的xlsx表格,这一步最好指定绝对路径,相对路径保存不了
df.to_excel("D:\output1.xlsx", index=False)
# 或者保存修改后的数据到本表格的自定义sheet中,不指定mode='a'的话,新的sheet会覆盖原有的所有sheet
# 创建一个ExcelWriter对象
# with pd.ExcelWriter(excel_path, engine='openpyxl', mode='a') as writer:
# # 将修改后的数据写入原表格的新的工作表
# df.to_excel(writer, sheet_name='new_sheet1',index=False)