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

如何用Pandas/Numpy匹配CPT代码计算价格差额并解决行不匹配报错?

问题解决步骤

1. 修正代码语法错误

你编写的np.where语句存在括号位置错误,多余的右括号破坏了语法结构,这是直接引发错误的原因。修正后的代码如下:

# 先确认列名与数据集一致,假设"总核准金额"对应代码中的LINE_TOTAL_ALLOWED
df['核准差额'] = np.where(
    df['LINE_TOTAL_ALLOWED'] == df['NEW_PRICE'] * 15,
    0,
    df['LINE_TOTAL_ALLOWED'] - df['NEW_PRICE'] * 15
)

2. 确认列名匹配

你的数据集表格中列名为总核准金额,但代码里用的是LINE_TOTAL_ALLOWED,如果两者不对应,必须替换为数据集实际的列名。比如数据集列名为中文时,代码要改成:

df['核准差额'] = np.where(
    df['总核准金额'] == df['NEW_PRICE'] * 15,
    0,
    df['总核准金额'] - df['NEW_PRICE'] * 15
)

3. 清理重复CPT列

数据集中存在CPT Code和CPT_CODE两个重复列,容易导致后续处理歧义,建议先清理:

# 删除其中一个重复列,根据需求选择保留哪一列
df = df.drop(columns=['CPT_CODE'])

4. 完善CPT匹配逻辑(若需)

如果NEW_PRICE不是每行自带的,而是单独的CPT-新价格映射表,需要先通过CPT代码合并数据:

# 示例CPT-新价格映射表
cpt_price_map = pd.DataFrame({
    'CPT Code': ['90887', ...],  # 你的20个CPT代码
    'NEW_PRICE': [153, ...]       # 对应新价格
})

# 通过CPT Code合并数据集与映射表
df = df.merge(cpt_price_map, on='CPT Code', how='left')

完成上述步骤后重新运行计算代码,即可得到正确的应付款差额。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 18:40:34