基于单元格值去重:培训完成状态数据清洗诉求
解决方案
方法一:Excel Power Query(零公式高效处理)
- 选中你的数据表格,点击顶部「数据」选项卡,选择「从表格/区域」(Excel 2016及以后版本自带该功能),弹窗确认数据包含表头后进入编辑器。
- 点击「转换」栏的「分组依据」,分组列勾选「User」和「Training Course」,新列名设为「所有状态」,操作选择「所有行」,点击确定。
- 点击「添加列」→「自定义列」,输入公式:
if List.Contains([所有状态][Status], "Complete") then "Complete" else "Incomplete" - 删除「所有状态」列,再点击「主页」→「删除重复项」,确保每个用户+课程组合只保留一条记录。
- 最后点击「关闭并上载」,即可得到目标结果。
方法二:Python Pandas(适合批量处理大量数据)
假设数据保存为training_data.csv,执行以下代码:
import pandas as pd # 读取原始数据 df = pd.read_csv("training_data.csv") # 按用户+课程分组,优先保留Complete状态 df_cleaned = df.groupby(["User", "Training Course"])["Status"].apply( lambda x: "Complete" if "Complete" in x.values else "Incomplete" ).reset_index() # 打印结果或保存到新文件 print(df_cleaned) df_cleaned.to_csv("cleaned_training_data.csv", index=False)
核心逻辑说明
两种方法都实现了:
- 自动按「用户+课程」组合去重
- 当同一组合同时存在
Complete和Incomplete时,优先保留Complete - 最终每个「用户+课程」只保留一条唯一状态记录
内容的提问来源于stack exchange,提问作者G P
相关产品推荐
相关产品推荐

