如何在熊猫中分组和计算

我有df如下


customer class  score

A          a      10

A          b      20

B          a      40

B          b      50

我想像这样分组,转换和计算。


customer  score(b-a)

A           10

B           10

我不知道如何计算。


df.groupby(df.customer)

如果有人经历过这样的聚合,请告诉我。


谢谢


DIEA
浏览 85回答 2
2回答

隔江千里

您可以使用@HenryYik的评论,也可以使用:pivot(df.pivot(index='customer', columns='class', values='score')   .assign(score=lambda x: x['b']-x['a']))输出:class      a   b  scorecustomer               A         10  20     10B         40  50     10

慕虎7371278

替代解决方案,按客户分组并应用自定义功能def get_score(temp):    map_score = dict(zip(temp['class'], temp['score'])) # mapping of class and score for each customer    return map_score['b'] - map_score['a']df.groupby("customer").apply(get_score)这将导致预期的答案。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python