【问题标题】:Pandas Group by and get corresponding ValuePandas Group by 并得到相应的值
【发布时间】:2023-01-13 02:51:57
【问题描述】:

假设我们有一个如下所示的 Pandas 数据框

data = {'date':['2022-10-01', '2022-10-01', '2022-10-02', '2022-10-02', '2022-10-02'],
'price': [10, 20, 30, 40, 50],
'store': ['A', 'B', 'A', 'C', 'B']
}
df = pd.DataFrame(data)

我想按 date 分组并获得最大价格值,对于最大值 price 我想要相应的存储值,即我不想在 store 列上应用最大聚合。

我怎样才能做到这一点?

预期产出

+------------+-------+-------+
|    date    | price | store |
+------------+-------+-------+
| 2022-10-01 |    20 | B     |
| 2022-10-02 |    50 | B     |
+------------+-------+-------+

【问题讨论】:

    标签: python pandas group-by


    【解决方案1】:

    你可以在groupby之后使用idxmax找到price的索引max_value,然后使用loc

    df_new = df.loc[df.groupby('date')['price'].idxmax()].reset_index(drop=True)
    print(df_new)
    

    输出:

             date  price store
    0  2022-10-01     20     B
    1  2022-10-02     50     B
    

    【讨论】:

      猜你喜欢
      • 2018-03-05
      • 1970-01-01
      • 1970-01-01
      • 2016-11-29
      • 1970-01-01
      • 2018-10-28
      • 2023-01-15
      • 2018-01-25
      • 1970-01-01
      相关资源
      最近更新 更多