我有这样一个数据集,它包含了各家商店一周内所售商品的价格。
数据框:price_df是这样的。
price_df.head()
store_id item_id week sell_price
0 S1 item1 w1 9.58
1 S1 item1 w2 9.00
2 S2 item1 w1 8.30
3 S2 item1 w2 8.50
4 S2 item2 w1 8.26
我想知道:对于每个 "商品和商店 "的组合,最高的价格是什么?
我的代码。
item_store_max_prices = price_df.groupby(["store_id","item_id"]).agg({"sell_price":["max"]})
但这只会显示store_id, item_id和该组合的最大价格。
问题陈述:我的代码是这样的
然而,我想在我的结果集中,也显示出一周内该 "商店-商品 "组合的最大价格。
比如说,我想在结果集中显示 "商店-商品 "组合的最大价格的一周。
store_id item_id week sell_price
0 S1 item1 w1 9.58
1 S2 item1 w2 8.50
你能帮我如何获得这个结果吗?
先谢谢你。
你可以找到具有以下特征的行的索引 max
值,使用 df.idxmax()
.
然后使用上述指数对数据框进行子集,使用 df.loc
,像这样。
idx = price_df.groupby(["store_id","item_id"])['sell_price'].idxmax().tolist()
price_df = price_df.loc[idx]
输出:
store_id item_id week sell_price
0 S1 item1 w1 9.58
3 S2 item1 w2 8.50
4 S2 item2 w1 8.26