Pandas Dataframe。我可以在应用了分组子句的列上获取其他列值吗?

问题描述 投票:1回答:1

我有这样一个数据集,它包含了各家商店一周内所售商品的价格。

数据框: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

你能帮我如何获得这个结果吗?

先谢谢你。

pandas dataframe pandas-groupby
1个回答
1
投票

你可以找到具有以下特征的行的索引 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
© www.soinside.com 2019 - 2024. All rights reserved.