如何根据 Pandas Dataframe 中的相似值将行分组为较小的行子集

问题描述 投票:0回答:1
公司 成本
ABC 公司(新加坡) 1
ABC公司(日本) 3
ABC 公司(纽约) 4
D公司 6
D公司(英国) 5
D私人有限公司 3

我想将“公司名称”列聚合到下表中,并根据第一个表中给出的原始数据添加一个新列“聚合公司”。请指教。

公司 综合公司 成本
ABC 公司(新加坡) 公司ABC 1
ABC公司(日本) 公司ABC 3
ABC 公司(纽约) 公司ABC 4
D公司 D公司 6
D公司(英国) D公司 5
D私人有限公司 D公司 3

不知道如何开始,尝试了 groupby 但没有成功

python row
1个回答
0
投票

一个简单的方法是使用 pandas 的 extract 方法和正则表达式:

import re
re_string = r"(Company \w{3}) "
df['Aggregated Company'] = df['Company'].str.extract(re_string)

如果您需要测试正则表达式字符串,请使用 https://regex101.com/

当前字符串的解释是单词 company、一个文字空格,然后是三个单词字符 [a-zA-z0-9]。

re 的括号创建了一个捕获组,这对于 extract 方法很重要

迭代的替代方法是通过这个答案:

使用正则表达式在 Pandas Dataframe 中创建新列

© www.soinside.com 2019 - 2024. All rights reserved.