<p>必须满足以下全部条件:必须排除status为'cancelled'或'refunded'的订单,否则会导致GMV虚高12%以上;order_amount字段需转换为数值后校验>0,非数字值统一置为NULL,否则pandas会报TypeError且中断执行;仅处理created_at在2024-04-01至2024-06-30之间的记录,否则将混入测试环境历史脏数据;输出结果按user_id分组,返回各组sum(order_amount)、count(*)、max(created_at)三个字段,否则指标口径与BI看板不一致。输入为pandas DataFrame,列名固定为order_id,user_id,status,order_amount,created_at,无索引;使用pandas 2.0+,禁用for循环,必须用vectorized操作;遇到NaN的created_at按当前日期前推90天填充,不抛错。`csvorder_id,user_id,status,order_amount,created_atORD-001,U-101,paid,299.99,2024-05-12 14:30:00 # 正常有效订单ORD-002,U-102,refunded,149.50,2024-05-10 09:15:0</p>
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你需要让Codeium准确生成符合业务规则、数据边界和异常处理要求的数据处理流程代码,但提示词里只写了“清洗订单数据”,结果它漏掉了退款单不参与统计、金额必须大于0、时间范围限定在近90天这些关键约束。
明确列出所有硬性限制条件
在提示词开头用「必须满足以下全部条件」引出限制清单,每条独立成行,不合并、不模糊。例如:
必须排除status为'cancelled'或'refunded'的订单;
order_amount字段需转换为数值后校验>0,非数字值统一置为NULL;
仅处理created_at在2024-04-01至2024-06-30之间的记录;
输出结果按user_id分组,返回各组sum(order_amount)、count(*)、max(created_at)三个字段。
这一步不能写“大致过滤”“一般要排除”,Codeium会把“大致”“一般”直接忽略——它只认确定性指令。
用「否则」句式绑定后果
对每条限制条件,紧接一句「否则……」说明违规后果。比如:
订单状态为'refunded'的记录必须剔除,否则会导致GMV虚高12%以上;
order_amount未转数值就聚合,否则pandas会报TypeError且中断执行;
created_at未加日期范围过滤,否则将混入测试环境历史脏数据。
Codeium对「否则」引导的负面结果响应更敏感,比单纯列要求更容易触发严格校验逻辑。
提供带注释的输入输出样例
方法一:贴一段真实输入片段(5~8行),在关键字段旁用#注释其约束含义:
```csv
order_id,user_id,status,order_amount,created_at
ORD-001,U-101,paid,299.99,2024-05-12 14:30:00 # 正常有效订单
ORD-002,U-102,refunded,149.50,2024-05-10 09:15:00 # 必须剔除:status=refunded
ORD-003,U-103,paid,abc,2024-05-08 20:45:00 # 必须转NULL:order_amount非数字
```
方法二:直接给出期望输出表头及首行结果,并标注计算依据:
输出字段:user_id, total_amount, order_count, latest_order_time
U-101, 299.99, 1, 2024-05-12 14:30:00 # total_amount=299.99(已剔除refunded/非法金额)
【样例中必须包含至少一个被剔除的行和一个被修正的行】,否则Codeium默认所有输入都合规。
声明数据源与运行环境
第一步:说明数据来源格式,例如「输入为pandas DataFrame,列名固定为order_id,user_id,status,order_amount,created_at,无索引」;
第二步:声明依赖与版本,例如「使用pandas 2.0+,禁用for循环,必须用vectorized操作」;
第三步:指定异常处理方式,例如「遇到NaN的created_at按当前日期前推90天填充,不抛错」。
环境信息缺失时,Codeium可能默认用SQL语法或旧版pandas deprecated方法,导致代码无法直接运行。

















