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

如何在Pandas DataFrame中按相似值分组并聚合公司名称

实现公司名称聚合的解决方案

你需要给数据表新增Aggregated Company列,把同一家公司的分支/后缀名称统一为一个主名称,下面是几种可行的实现方式:

方法1:正则表达式提取主名称

针对你当前数据的规律——主名称后要么跟括号包裹的地区,要么跟额外后缀,用正则可以快速提取主名称。以Python pandas为例:

import pandas as pd
import re

# 构造原始数据
data = {
    'Company': ['Company ABC (Singapore)', 'Company ABC (Japan)', 'Company ABC (New York)',
                'Company D', 'Company D (United Kingdom)', 'Company D Pte Limited'],
    'Cost': [1, 3, 4, 6, 5, 3]
}
df = pd.DataFrame(data)

# 定义提取主名称的函数
def get_main_company(name):
    # 匹配括号前的主名称
    bracket_match = re.match(r'(.+?)\s*\(', name)
    if bracket_match:
        return bracket_match.group(1)
    # 匹配带后缀的Company D变体
    suffix_match = re.match(r'(Company D)\s.*', name)
    if suffix_match:
        return suffix_match.group(1)
    # 无匹配则返回原名称
    return name

# 生成聚合列
df['Aggregated Company'] = df['Company'].apply(get_main_company)
print(df)

这段代码会直接生成你需要的目标数据表,正则规则可以根据实际的公司名称变体灵活调整。

方法2:自定义映射字典

如果公司名称的变体规则复杂,正则不好覆盖,直接定义映射字典是最稳妥的方式:

import pandas as pd

data = {
    'Company': ['Company ABC (Singapore)', 'Company ABC (Japan)', 'Company ABC (New York)',
                'Company D', 'Company D (United Kingdom)', 'Company D Pte Limited'],
    'Cost': [1, 3, 4, 6, 5, 3]
}
df = pd.DataFrame(data)

# 定义所有变体到主名称的映射
company_map = {
    'Company ABC (Singapore)': 'Company ABC',
    'Company ABC (Japan)': 'Company ABC',
    'Company ABC (New York)': 'Company ABC',
    'Company D': 'Company D',
    'Company D (United Kingdom)': 'Company D',
    'Company D Pte Limited': 'Company D'
}

# 生成聚合列
df['Aggregated Company'] = df['Company'].map(company_map)
print(df)

这种方式适合名称变体数量不多的场景,手动维护映射能保证100%的准确率。

关于groupby的正确使用

你之前用groupby没成功,问题应该是没先生成Aggregated Company列。有了这个列之后,就可以正常按聚合后的公司名分组统计了,比如计算各公司的总成本:

total_cost = df.groupby('Aggregated Company')['Cost'].sum().reset_index()
print(total_cost)

输出结果:

Aggregated CompanyCost
Company ABC8
Company D14

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 15:46:10