You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于双条目数据表关联生成合同评分与年限对应变量

解决方法

步骤1:将双条目数据表转为可匹配的长格式

先把你的宽格式双条目表,转换成包含scoring、years、percentage三列的长格式DataFrame,这是后续匹配的关键。

假设你的双条目表是如下结构(可直接从Excel/CSV读取,这里用模拟数据示例):

import pandas as pd

# 模拟宽格式的双条目对照表
lookup_wide = pd.DataFrame({
    'scoring': ['S1', 'S2', 'S3'],
    1: ['2%', '5%', '1%'],
    2: ['4%', '7%', '3%'],
    # ... 这里补充3-11年的对应百分比
    11: ['22%', '25%', '21%']
})

# 转成匹配用的长格式
lookup_long = lookup_wide.melt(
    id_vars='scoring',
    var_name='years',
    value_name='percentage'
)
# 统一数据类型:years转为整数,百分比转为数值(可选,根据需求保留字符串或转成小数)
lookup_long['years'] = lookup_long['years'].astype(int)
lookup_long['percentage'] = lookup_long['percentage'].str.replace('%', '').astype(float) / 100

步骤2:与业务DataFrame合并匹配

用merge方法,以scoring和years作为匹配键,直接把百分比值关联到业务数据的每条记录上:

# 模拟你的业务DataFrame
business_df = pd.DataFrame({
    'id': [1, 2, 3, 4],
    'years': [3, 1, 11, 5],
    'scoring': ['S2', 'S1', 'S3', 'S2']
})

# 左连接合并,保留所有业务记录
result_df = pd.merge(business_df, lookup_long, on=['scoring', 'years'], how='left')

执行后,result_df会新增percentage列,每条记录都对应到双条目表中的匹配值;如果存在无匹配的scoring或years,对应位置会显示NaN,方便后续处理缺失值。

关键注意点

  • 确保业务DataFrame和对照表的scoring、years数据类型完全一致,比如years都是整数类型,避免因类型不匹配导致匹配失败。
  • 如果双条目表是从外部文件读取的,直接读取后执行转长格式操作即可,无需手动构建字典。

内容的提问来源于stack exchange,提问作者dsilva

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 22:03:11