代码之家  ›  专栏  ›  技术社区  ›  Outcast

dataframe中的新列,其值来自GroupBy的max行

  •  0
  • Outcast  · 技术社区  · 7 年前

    我有一个熊猫数据框,其中每一行代表10月份每天的不同股票。dataframe有多个列。其中三个是 Stock_id , Date Stock_value .

    我想找到10月份每天价值最大的股票,并插入其 作为数据帧中每一行的新列的值。

    enter image description here

    enter image description here

    请记住,以上是示例输入和期望输出。首先,每个“股票id”在10月份的每个日期都有一行。

    我想解决这个问题的办法包括 data_daily.groupby(['Date'])['Stock_value'] 但是有一些更明显的东西,或者可能是完全不同的东西。

    我该怎么做?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Dani Mesejo    7 年前

    你可以试试:

    transform = df.groupby('Date')['Stock_value'].transform('idxmax')
    df['Max_Stock_id'] = df.iloc[transform, 0].values
    
    print(df)
    

       Stock_id       Date  Stock_value  Max_Stock_id
    0       963 2018-02-10         97.5           963
    1      1201 2018-02-10         91.1           963
    2      1341 2018-03-10         93.7          1341
    3      1458 2018-03-10         92.6          1341