Python / pandas / 合同业务即代码
合作方分账引擎
用 pandas 做多源对账、按合作方分账、可直接复核的 Excel 输出,全部脚本化。
这些 notebook 是 contract-business-as-code:合作方的分成比例、支付通道扣费、退款抵扣、产线到结算渠道的映射规则,从合同条款和业务规则里读出来,再 codify 成 pandas pipeline,按合作方输出可直接付款的多 sheet 应付应收明细。一只眼睛读合同,一只眼睛写 pandas——这个交叉技能,是之后做数据治理和企业级 ERP 交付能自然衔接上的前置。
业务流
从业务现场到复核结论
证据模式
这证明了什么能力
多源对账脚本把官方 CSV 流水和开发 TXT 导出做订单号匹配,找出未进入官方流水的补充金额。
合作方分账脚本把合同里的分成比例、支付通道扣费、退款抵扣 codify 成代码,按合作方输出多 sheet 可直接付款的应付明细,财务拿到即可走付款。
入口匹配脚本处理账号字段与开通号码匹配,暴露了字段类型治理为什么必须在 merge 之前做完。
CSV 转 Excel 工具把一次性 notebook 逻辑改造成可选择文件、可提示错误、可记录日志的小工具。
处理模型
问题、处理方式和系统价值
01
业务问题
运营数据来自不同系统,编码、字段类型、订单号、金额单位都不一致;结算规则不在任何系统里,只在合同里。
02
处理方式
先把 key 和字段类型统一,再把合同条款(分成比例、扣费、退款逻辑)codify 成常量,再用 pandas 做 merge、合作方分类、ExcelWriter 输出按合作方拆分的应付应收账单。
03
系统价值
这些 pipeline 不是品牌交付物,但它们证明的交叉技能——读合同的同时写代码——和后来把数据治理、企业级 ERP 从需求做成可运行软件,是同一套技能。
脱敏代码
sanitized notebook pattern
# Pattern A — multi-source reconciliation across systems
official = pd.concat(
pd.read_csv(file, encoding="gb18030")
for file in glob("official_flow_*.csv")
)
dev = pd.concat(
pd.read_csv(file, sep="\t")
for file in glob("*export.txt")
)
joined = pd.merge(dev, official, how="left", on="order_id")
unmatched = joined[joined["official_amount"].isna()]
# Pattern B — contract-business-as-code: per-partner settlement
# Real rev-share rates, fees, and channel codes omitted per NDA
flow["partner"] = "other"
flow.loc[flow["line"].isin(VENDOR_A_LINES), "partner"] = "vendor_a"
flow.loc[flow["line"].isin(LICENSEE_B_LINES), "partner"] = "licensee_b"
books = {}
for partner, rate in PARTNER_RATES.items():
sub = flow[flow["partner"] == partner]
net = sub["gross"].sum() - REFUNDS[partner]
books[partner] = {
"monthly_payable": round(net * PSP_NET * rate["monthly"], 2),
"oneoff_payable": round(sub["oneoff"].sum() * PSP_NET * rate["oneoff"], 2),
}
with pd.ExcelWriter("partner_settlement.xlsx") as w:
for partner, book in books.items():
pd.DataFrame([book]).to_excel(w, sheet_name=partner, index=False)