У меня вопрос, связанный с python groupby. Я получил этот фрейм данных здесь:
latlong hour formula_value_x
0 -37.853698 145.0562584 0 978.880733
1 -37.853698 145.0562584 1 535.458975
2 -37.853698 145.0562584 2 370.082577
3 -37.853698 145.0562584 3 348.519570
4 -37.853698 145.0562584 4 524.588282
5 -37.853698 145.0562584 5 1310.520435
6 -37.853698 145.0562584 6 3440.724656
7 -37.853698 145.0562584 7 5839.008447
8 -37.853698 145.0562584 8 6024.170196
9 -37.853698 145.0562584 9 5000.579879
10 -37.853698 145.0562584 10 4697.686943
Мне нужно запустить groupby
в 1-ых 2 столбцах (latlong
и hours
) и найти максимум. Но мне нужно запустить группу по часам в скобках, например, 0-5, 6-10, 11-16,17-20, 20-23
.
df1.groupby(['latlong','hour'])['formula_value_x'].quantile(1)
- это основной способ сделать это без скобок. Как я могу сделать это с этими скобками часов?
Так, например, для определенного значения latlong
, groupby
примет все свои значение формула за часы [0,1,2,3,4,5]
, а затем примет их макс.
После нахождения максимума для таких скобок часов мне нужно создать новый столбец, который будет иметь максимальное значение (выяснено ранее), и он будет рядом с часом, принадлежащим той же скобке.
Итак .. Мне нужен такой результат:
latlong hour formula_value_x max
0 -37.853698 145.0562584 0 978.880733 1310.520435
1 -37.853698 145.0562584 1 535.458975 1310.520435
2 -37.853698 145.0562584 2 370.082577 1310.520435
3 -37.853698 145.0562584 3 348.519570 1310.520435
4 -37.853698 145.0562584 4 524.588282 1310.520435
5 -37.853698 145.0562584 5 1310.520435 1310.520435
6 -37.853698 145.0562584 6 3440.724656 6024.170196
7 -37.853698 145.0562584 7 5839.008447 6024.170196
8 -37.853698 145.0562584 8 6024.170196 6024.170196
9 -37.853698 145.0562584 9 5000.579879 6024.170196
10 -37.853698 145.0562584 10 4697.686943 6024.170196