首页 > 解决方案 > 按多个字段分组并计算值之间的差异

问题描述

我有以下数据框:

在此处输入图像描述

对于每个星期的每个项目标题,我都有两个 Seller_id。我想做的是计算这两个卖家(seller_id 221591137 - Seller_id 143125485)每周在每种产品(标题)上的价格差异。因此,期望的响应是(对于第一个产品):

week: 5, title: 'Anafe Orbis 724aco 4 H', diff_price: 0
week: 6, title: 'Anafe Orbis 724aco 4 H', diff_price: 300 (9799-9499)

我已经尝试了几件事,但我无法找到可行的解决方案。

编辑:链接到示例数据。

标签: pythonpandas

解决方案


我建议使用pandas.DataFrame.groupby()来获取所需的数据作为组。然后,您可以将功能应用于该组,例如:

group = df.groupby(["title", "week"])
price_diff = group.apply(lambda x: x['price'].diff().iloc[0]

这将返回一个包含所有价格差异的 pandas.Series。


推荐阅读