公司 | 成本 |
---|---|
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 但没有成功
一个简单的方法是使用 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 方法很重要
迭代的替代方法是通过这个答案: