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

技术问询:排除与正值绝对值相同的负值(附保单数据集)

保单数据集过滤:移除同PolicyNumber下对应相同绝对值正值的负值记录

嘿,我来帮你搞定这个保单数据的过滤需求!先明确目标:移除每个PolicyNumber分组中,与该组内某个正值绝对值完全相等的负值数据;而那些没有对应正值的负值、以及所有正值都需要保留。

原始数据集

先把你提供的原始数据整理成清晰的表格:

PolicyNumberPremiumCommissionDataSourceEffectiveDate
1-2.25-0.41Internal31/03/2018
1160.2629.14Internal31/03/2018
198.8117.96Internal31/03/2018
2361.2465.67Internal31/01/2018
2570.35103.70Internal31/01/2018
2-17.05-3.10Internal31/01/2018
3240.600.00External31/01/2018
3196.640.00External31/01/2018
3240.600.00External31/01/2018
3196.640.00External31/01/2018
3-240.600.00External28/02/2018
3-196.640.00External28/02/2018

处理方案(Python Pandas实现)

用Python的Pandas库来处理这类分组过滤需求最顺手,下面是完整的代码和步骤解释:

import pandas as pd

# 1. 构造/加载数据集
# 如果是从文件读取,替换成 df = pd.read_csv('你的保单数据文件.csv')
data = {
    'PolicyNumber': [1,1,1,2,2,2,3,3,3,3,3,3],
    'Premium': [-2.25, 160.26, 98.81, 361.24, 570.35, -17.05, 240.60, 196.64, 240.60, 196.64, -240.60, -196.64],
    'Commission': [-0.41, 29.14, 17.96, 65.67, 103.70, -3.10, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00],
    'DataSource': ['Internal']*6 + ['External']*6,
    'EffectiveDate': ['31/03/2018']*3 + ['31/01/2018']*3 + ['31/01/2018']*4 + ['28/02/2018']*2
}
df = pd.DataFrame(data)

# 2. 定义分组过滤函数
def filter_policy_group(group):
    # 收集当前PolicyNumber下所有正的Premium值(用集合提高查找效率)
    positive_premiums = set(group[group['Premium'] > 0]['Premium'])
    # 筛选规则:保留正Premium行,或负Premium行但绝对值不在正Premium集合中
    keep_rows = (group['Premium'] > 0) | (~group['Premium'].abs().isin(positive_premiums))
    return group[keep_rows]

# 3. 按PolicyNumber分组并应用过滤
filtered_df = df.groupby('PolicyNumber').apply(filter_policy_group).reset_index(drop=True)

# 4. 查看结果
print(filtered_df)

处理后的结果

运行代码后,得到的过滤后数据如下:

PolicyNumberPremiumCommissionDataSourceEffectiveDate
1-2.25-0.41Internal31/03/2018
1160.2629.14Internal31/03/2018
198.8117.96Internal31/03/2018
2361.2465.67Internal31/01/2018
2570.35103.70Internal31/01/2018
2-17.05-3.10Internal31/01/2018
3240.600.00External31/01/2018
3196.640.00External31/01/2018
3240.600.00External31/01/2018
3196.640.00External31/01/2018

可以看到:

  • Policy3中的-240.60和-196.64被移除了,因为同组内存在对应绝对值的正值
  • Policy1的-2.25和Policy2的-17.05被保留,因为同组内没有匹配的正值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:47:47