建设银行公积金预约网站,太原再次发出通告,发布一个app要多少钱,网页制作模板在哪买五表联筛#xff1a;从五个表格中筛选出出现过两次及两次以上的人名
需求分析#xff1a;
1.把五个表格合并起来#xff0c;合并之前必须确保五个表格的项是一样
2.合并之后查找哪些人出现过两次
3.最后输出结果代码#xff1a; def delete_from(self):# 读取五份表格文件…五表联筛从五个表格中筛选出出现过两次及两次以上的人名
需求分析
1.把五个表格合并起来合并之前必须确保五个表格的项是一样
2.合并之后查找哪些人出现过两次
3.最后输出结果代码 def delete_from(self):# 读取五份表格文件table1 pd.read_excel(外籍单列.xlsx,sheet_name数据源)table2 pd.read_excel(detele_from.xlsx,sheet_name外聘教师)table3 pd.read_excel(detele_from.xlsx,sheet_name专任教师)table4 pd.read_excel(detele_from.xlsx,sheet_name行政人员)table5 pd.read_excel(detele_from.xlsx,sheet_name教辅人员)# 合并五份表格为一个大表格merged_table pd.concat([table1, table2, table3, table4, table5])# 找出出现两次及两次以上的姓名duplicated_names merged_table[姓名][merged_table.duplicated(subset姓名, keepFalse)]# 输出这些姓名在哪些表格中for name in duplicated_names:tables_containing_name [table_name for table_name, table inzip([数据源, 外聘教师, 专任教师, 行政人员, 教辅人员], [table1,table2, table3, table4, table5]) if name in table[姓名].values]print(f姓名 {name} 在表格{,.join(tables_containing_name)} 中出现了两次或更多次。)重要知识点补充
tables_containing_name [table_name for table_name, table inzip([数据源, 外聘教师, 专任教师, 行政人员, 教辅人员], [table1,table2, table3, table4, table5]) if name in table[姓名].values]:
在这段代码中tables_containing_name 是一个列表推导式。它通过迭代5个不同的表格数据源, 外聘教师, 专任教师, 行政人员, 教辅人员并检查每个表格中是否存在特定姓名。如果姓名在表格中出现了两次或更多次就将这个表格的名称添加到列表中。duplicated_names merged_table[姓名][merged_table.duplicated(subset姓名, keepFalse)]
首先merged_table.duplicated(subset姓名, keepFalse) 针对表中的“姓名”列创建了一个布尔索引表示在此列中是否存在重复的姓名。keepFalse 保留所有重复的行而不仅仅保留第一个或最后一个。
随后merged_table[姓名][...] 选取了表中所有重复姓名的数据。这行代码返回了所有在“姓名”列中出现重复的姓名。