如何在Python中基于设定条件比对多列数据完成账户利率校验
Python银行账户利率合规校验实现方案
前置依赖
首先安装需要的工具库:
pip install pandas openpyxl
校验规则说明
- 银行账户唯一标识为
Account字段,账户关联Level1,Level1关联Level2,Level2对应唯一基准币种Currency - 需独立校验四个利率相关字段:
Credit Rate、Credit Code、Debit Code、Debit Rate,四个字段关联的币种需与对应Level2的Currency完全匹配 - 四个字段全部符合规则判定为正常,任意字段不匹配判定为异常
核心实现代码
import pandas as pd # 1. 读取数据集,Excel和csv对应修改读取方法即可 df = pd.read_excel("你的数据集路径.xlsx") # 2. 预生成Level2与对应币种的映射表,避免重复匹配提升效率 # 若有单独维护的Level2币种映射表,可单独读取生成该映射字典,避免业务数据脏值影响准确性 level2_currency_map = df.drop_duplicates(subset="Level2").set_index("Level2")["Currency"].to_dict() # 3. 定义单条数据校验函数 def check_row(row): # 获取当前行对应Level2的基准币种 standard_currency = level2_currency_map.get(row["Level2"]) if not standard_currency: return "异常" # 校验逻辑可根据实际字段格式调整,例:若Rate字段仅存数值无币种标识,可删除对应校验行 if (row["Credit Code"] == standard_currency and row["Debit Code"] == standard_currency and str(row["Credit Rate"]).endswith(standard_currency) and str(row["Debit Rate"]).endswith(standard_currency)): return "正常" else: return "异常" # 4. 应用校验规则生成新的校验结果列 df["校验结果"] = df.apply(check_row, axis=1) # 5. 结果导出 df.to_excel("校验结果全量.xlsx", index=False) # 仅导出异常数据供排查 df[df["校验结果"] == "异常"].to_excel("异常数据列表.xlsx", index=False)
内容的提问来源于stack exchange,提问作者Alan Paul
相关产品推荐
相关产品推荐

