Python Pandas不同粒度数据聚合 实现贷款每笔总NPV计算
解决方案
你需要的是按贷款唯一标识列(如贷款编号/loan_id,请替换为你数据集内的实际列名)分组聚合后将结果映射回原表行,直接用Pandas内置的groupby+transform方法即可实现,无需手写for循环,可避开循环逻辑里常见的索引匹配、赋值报错问题:
# 假设你的数据集存储在变量df中 df['总NPV'] = df.groupby('贷款编号')['贷款发放日核算的贷款还款NPV'].transform('sum')
如果你的贷款发放日核算的贷款还款NPV列存在空值,需要忽略空值求和可以调整为:
df['总NPV'] = df.groupby('贷款编号')['贷款发放日核算的贷款还款NPV'].transform('sum', skipna=True)
transform方法会将分组聚合后的结果按原表索引匹配返回,不会压缩分组后的行数,刚好匹配你需要将同一笔贷款的总NPV填充到该贷款所有还款记录行的需求,和你给出的预期结果样式一致。
内容的提问来源于stack exchange,提问作者AtenaData
相关产品推荐
相关产品推荐

