主页 > 电脑硬件  > 

筛选相同项

筛选相同项

# import os # import pandas as pd # # 文件路径,根据实际情况修改 # file_path_1 = r'C:\Users\Administrator\Desktop\python\文件1.xlsx' # file_path_2 = r'C:\Users\Administrator\Desktop\python\文件2.xlsx' import os import pandas as pd # 获取当前脚本所在的目录 script_dir = os.path.dirname(os.path.abspath(__file__)) # 将当前工作目录切换到脚本所在目录 os.chdir(script_dir) # 文件路径,根据实际情况修改 file_path_1 = '文件1.xlsx' file_path_2 = '文件2.xlsx' # 检查文件是否存在 if not os.path.exists(file_path_1): print(f"文件 {file_path_1} 不存在,请检查路径。") else: print(f"将读取文件: {file_path_1}") if not os.path.exists(file_path_2): print(f"文件 {file_path_2} 不存在,请检查路径。") else: print(f"将读取文件: {file_path_2}") try: # 读取文件,指定使用 openpyxl 引擎 df1 = pd.read_excel(file_path_1, engine='openpyxl') df2 = pd.read_excel(file_path_2, engine='openpyxl') # 确保 df2 的风险代码为字符串类型 df2['风险代码'] = df2['风险代码'].astype(str) # 筛选出 1.xls 中风险代码前五位为 A0102 的数据 df1_A0102 = df1[df1['风险代码'].str.startswith('A0102')] # 筛选出 2.xls 中风险代码以 5 开头的数据 df2_start_5 = df2[df2['风险代码'].str.startswith('5')] # 合并这两部分数据并添加大类列,赋值为印章 seal_df = pd.concat([df1_A0102, df2_start_5], ignore_index=True) seal_df['大类'] = '印章' # 筛选出 1.xls 中风险代码前五位为 A0202 的数据 df1_A0202 = df1[df1['风险代码'].str.startswith('A0202')] # 筛选出 2.xls 中风险代码以 11 开头的数据 df2_start_11 = df2[df2['风险代码'].str.startswith('11')] # 合并这两部分数据并添加大类列,赋值为客户信息 customer_info_df = pd.concat([df1_A0202, df2_start_11], ignore_index=True) customer_info_df['大类'] = '客户信息' # 合并印章相关和客户信息相关的数据 final_combined_df = pd.concat([seal_df, customer_info_df], ignore_index=True) # 将大类列调整到第一列 cols = final_combined_df.columns.tolist() cols.insert(0, cols.pop(cols.index('大类'))) final_combined_df = final_combined_df[cols] # 找出 df1 和 df2 中不在 final_combined_df 里的数据 remaining_df1 = df1[~df1['风险代码'].isin(final_combined_df['风险代码'])] remaining_df2 = df2[~df2['风险代码'].isin(final_combined_df['风险代码'])] # 合并剩余数据 remaining_combined_df = pd.concat([remaining_df1, remaining_df2], ignore_index=True) # 保存文件,可根据需要修改保存路径 # save_path_1 = r'C:\Users\Administrator\Desktop\python\新文件1_再次全新处理_重试.xlsx' # save_path_2 = r'C:\Users\Administrator\Desktop\python\新文件2_再次全新处理_重试.xlsx' save_path_1 = '新文件1_.xlsx' save_path_2 = '新文件2_.xlsx' final_combined_df.to_excel(save_path_1, index=False) remaining_combined_df.to_excel(save_path_2, index=False) print("文件处理完成,已保存。") except Exception as e: print(f"处理过程中出现错误: {e}")

处理文件:

  从 1..xlsx 里筛选出风险代码前五位为 A0102 的数据,从 2..xlsx里筛选出风险代码以 5 开头的数据,把这两部分数据合并,添加新列 大类 并赋值为 印章。从 1..xlsx里筛选出风险代码前五位为 A0202 的数据,从 2..xlsx里筛选出风险代码以 11 开头的数据,将它们合并,添加新列 大类 并赋值为 客户信息。把上述两类合并后的数据再次合并,同时把 大类 列调整到第一列。把 1..xlsx和 2.xlsx 的总数据去掉前面合并的数据内容,剩余的数据保存为第二个新文件。
标签:

筛选相同项由讯客互联电脑硬件栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“筛选相同项