python - 按多个字段分组并计算值之间的差异
问题描述
我有以下数据框:
对于每个星期的每个项目标题,我都有两个 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)
我已经尝试了几件事,但我无法找到可行的解决方案。
编辑:链接到示例数据。
解决方案
我建议使用pandas.DataFrame.groupby()来获取所需的数据作为组。然后,您可以将功能应用于该组,例如:
group = df.groupby(["title", "week"])
price_diff = group.apply(lambda x: x['price'].diff().iloc[0]
这将返回一个包含所有价格差异的 pandas.Series。
推荐阅读
- python - 透明继承Django模型属性
- python - 如何在 Python 中获取任何时区的当前偏移量
- c# - 在 C# 中对二维数组进行分组?
- c# - 如何使用反序列化拆分列中的 json 数据?
- visual-studio - 在 Visual Studio 的测试资源管理器中跟踪活动项
- python - 优雅地停止带有子进程的 python 守护进程
- javascript - 在 Firefox 和 chrome 中获取所选右键菜单项的值
- visual-studio - 在 Visual Studio 中运行 dotnet 命令行
- stata - 使用 shp2dta 转换 shapefile 后没有观察到
- protractor - protractor.browser.refresh in --headless