批次号怎么加进去?
批次号加入匹配的代码示例:
# 1. 提取批次号(假设格式:P20250301-001 → 批次20250301)
df_refund['批次'] = df_refund['商品ID'].str.extract(r'(d{8})')
df_orders['批次'] = df_orders['商品ID'].str.extract(r'(d{8})')
# 2. 增加批次号作为匹配条件
merged = pd.merge_asof(
df_refund.sort_values('时间'),
df_orders.sort_values('时间'),
on='时间',
by=['金额', '商品品类', '批次'], # 三级精确匹配
tolerance='5min'
)
# 3. 人工校验异常批次
check = merged[merged['批次_x'] != merged['批次_y']]
print(f"批次不匹配记录: {len(check)}条,需人工审核")
生鲜场景注意:
- 若批次号规则不稳定(如含字母),先统一格式:
df['批次'] = df['商品ID'].str.replace(r'[^0-9]', '', regex=True) - 建议为每个批次单独保存
商品ID+批次组合作为唯一键