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

Python中识别DataFrame同公司代码并按排序号删除冗余行的方法

实现方案

核心逻辑说明

你需要先将主交易数据表和同公司多代码映射表关联,再按公司维度分组处理,符合规则的同公司代码仅保留Final Sorted Number最大的条目,其余删除。

完整代码实现

import pandas as pd

# ---------- 1. 构造测试数据(实际使用时替换为你的真实数据即可)----------
# 主交易数据表(你已经计算完Final Sorted Number的结果)
df = pd.DataFrame({
    'Code': ['ApplA', 'Amazon', 'Facebook', 'ApplE'],
    'Volume': [500, 1000, 250, 100],
    'Trade': [1000, 500, 750, 1500],
    'Volume Order': [2, 1, 3, 4],
    'Trade Order': [2, 4, 3, 1],
    'Max Ordered Number': [2, 4, 3, 4],
    'Final Sorted Number': [4, 2, 3, 1]
})

# 同公司多代码映射表
df_samecompanies = pd.DataFrame({
    'Codes': ['ApplA', 'Amazon', 'Facebook', 'ApplE', 'AmazA', 'AmazonB'],
    'Code': ['Apple', 'Amazon', 'Facebook', 'Apple', 'Amazon', 'Amazon'],
    'Shares': ['A', 'Empty', 'Empty', 'E', 'A', 'B']
})

# ---------- 2. 关联两张表,补充公司、股份后缀信息 ----------
df = df.merge(
    df_samecompanies[['Codes', 'Code', 'Shares']],
    left_on='Code',
    right_on='Codes',
    how='left',
    suffixes=('', '_company')
).rename(columns={'Code_company': 'Company'}) # 重命名避免列名冲突

# ---------- 3. 按公司分组过滤,删除不符合要求的条目 ----------
def filter_same_company(group):
    # 该公司只有1个代码,直接保留
    if len(group) == 1:
        return group
    # 该公司有多个代码,且存在后缀为A/D的条目
    if any(group['Shares'].isin(['A', 'D'])):
        # 保留Final Sorted Number最大的1条,其余删除
        return group.nlargest(1, 'Final Sorted Number', keep='first')
    # 其他无A/D后缀的同公司代码场景,可自行补充规则,这里默认全部保留
    return group

# 执行分组过滤,重置索引
df_result = df.groupby('Company', group_keys=False).apply(filter_same_company).reset_index(drop=True)

# ---------- 4. 删除临时关联列,得到最终结果 ----------
df_result = df_result.drop(columns=['Codes', 'Company', 'Shares'])
print(df_result)

输出结果验证

处理后会自动删除Final Sorted Number更小的ApplE,最终结果如下:

Code  Volume  Trade  Volume Order  Trade Order  Max Ordered Number  Final Sorted Number
0     ApplA     500   1000             2            2                   2                    4
1    Amazon    1000    500             1            4                   4                    2
2  Facebook     250    750             3            3                   3                    3

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 15:24:03