1
  • 我想按“分组”列分组并获取所述期间的 max() 值

  • 分组应根据相邻值是否匹配;尊重时间序列

  • 附加所需输出的打印屏幕

     df = pd.DataFrame(
         [['1/3/2019 15:00', 2455.75, False], ['1/3/2019 16:00', 2448.25, False], ['1/3/2019 17:00', 2451.75, False],
          ['1/3/2019 19:00', 2449.5, False], ['1/3/2019 20:00', 2441.75, False], ['1/3/2019 21:00', 2448.75, False],
          ['1/3/2019 22:00', 2455.5, False], ['1/3/2019 23:00', 2458.75, True], ['1/4/2019 0:00', 2460.5, True],
          ['1/4/2019 1:00', 2463.5, True], ['1/4/2019 2:00', 2470.5, True], ['1/4/2019 3:00', 2472.75, True],
          ['1/4/2019 4:00', 2473.25, True], ['1/4/2019 5:00', 2478.0, True], ['1/4/2019 6:00', 2482.75, True],
          ['1/4/2019 7:00', 2483.0, True], ['1/4/2019 8:00', 2479.0, True], ['1/4/2019 9:00', 2479.0, True],
          ['1/4/2019 10:00', 2498.5, True], ['1/4/2019 11:00', 2518.25, True], ['1/4/2019 12:00', 2519.5, True],
          ['1/4/2019 13:00', 2532.25, True], ['1/4/2019 14:00', 2529.75, True], ['1/4/2019 15:00', 2524.75, True],
          ['1/4/2019 16:00', 2532.75, True], ['1/4/2019 17:00', 2529.5, True], ['1/6/2019 19:00', 2538.25, True],
          ['1/6/2019 20:00', 2544.0, True], ['1/6/2019 21:00', 2541.0, True], ['1/6/2019 22:00', 2538.5, True],
          ['1/6/2019 23:00', 2539.75, True], ['1/7/2019 0:00', 2538.75, False], ['1/7/2019 1:00', 2536.0, False],
          ['1/7/2019 2:00', 2538.0, False], ['1/7/2019 3:00', 2540.0, False], ['1/7/2019 4:00', 2531.75, False],
          ['1/7/2019 5:00', 2527.0, False], ['1/7/2019 6:00', 2529.5, False], ['1/7/2019 7:00', 2528.25, False],
          ['1/7/2019 8:00', 2532.5, False], ['1/7/2019 9:00', 2528.75, False], ['1/7/2019 10:00', 2533.0, False],
          ['1/7/2019 11:00', 2547.0, False]], columns=['datetime', 'close_p', 'grouping'])
     print(df)
    

在此处输入图像描述

4

1 回答 1

1

您可以将“分组”转换为一组组,其中每个组由连续值是否相等来定义。

我们可以这样做:

idx = df['grouping'].ne(df['grouping'].shift()).cumsum()
df['max'] = df.groupby(idx)['close_p'].transform('max')

idx你的石斑鱼在哪里。

于 2020-12-24T03:42:50.230 回答