如何合并具有相似索引panda的行



我有一个数据帧,看起来像这样:

customer           sales      gm%
TRC NL              3000      20
trc slgm            2000      30
TRC gmbh D          1000      40
Dinamic reg         300       10
dinamic             400       15
DINAMIC kgs italy   400       20

我想把同一家公司的行合并起来,计算销售额的总和和gm%的加权平均值,得到这样的结果:

customer           sales      gm%
TRC                6000       30
Dinamic            1200       15

我尝试过使用pd.concat,但使用不相似的索引不起作用。

一种可能的解决方案:

首先,通过提取名称的第一部分来转换customer列,以便在客户名称的多个变体之间有一个公共密钥:

df["customer"] = df["customer"].apply(lambda x: x.split(" ")[0].upper())
df.head()

然后分组:

df.groupby("customer").agg({"sales":"sum", "gm%":"mean"})

输出:

sales    gm%
customer        
DINAMIC     1200     15
TRC         6000     30

最新更新