如何用Python实现PIA_Status触发的Task Status设置与空行处理?
Python实现指定规则的数据处理
核心思路是按Application ID分组,判断每组是否存在PIA_Status为"Completed"的记录,再根据规则更新Task Status列。以下是完整实现代码:
import pandas as pd # 加载数据(替换为你的数据源路径或读取方式) df = pd.read_csv("your_data_source.csv") def process_application_group(group): # 检查当前Application ID组是否有已完成的记录 has_completed_entry = (group["PIA_Status"] == "Completed").any() if has_completed_entry: # 标记未开始/进行中的任务为closed group.loc[group["PIA_Status"].isin(["Not Started", "Started"]), "Task Status"] = "closed" # 清空已完成记录的Task Status group.loc[group["PIA_Status"] == "Completed", "Task Status"] = "" return group # 分组处理后合并结果 df_processed = df.groupby("Application ID", group_keys=False).apply(process_application_group) # 保存处理后的数据(按需调整输出格式) df_processed.to_csv("processed_data.csv", index=False)
关键说明:
- 分组逻辑:通过
groupby("Application ID")确保同一应用ID的所有行被统一处理 - 条件判断:
any()方法快速检测组内是否存在"Completed"状态的记录 - 列更新:使用
loc精准定位目标行,避免误修改其他数据 - 无"Completed"记录的组:保持原
Task Status值不变
内容的提问来源于stack exchange,提问作者Prasanna S US
相关产品推荐
相关产品推荐

