У меня есть наборы данных, ~ 30-60 000 000 строк каждый.Каждый Name
имеет один или несколько уникальных ID
, связанных с ним для каждого дня в наборе данных.Некоторые OP_DATE
и OP_HOUR
уникальные идентификаторы могут иметь 0 или пустые значения для каждого Load1,2,3
.
Я ищу способ вычисления total максимальных значений столбцовпо всем OP_DATE
, которые выглядят так:
Name ID OP_DATE OP_HOUR OP_TIME Load1 Load2 Load3
OMI 1 2001-01-01 1 1 11 10 12
OMI 1 2001-01-01 2 0.2 1 12 10
.
.
OMI 2A 2001-01-01 1 0.4 5
.
.
OMI 2A 2001-01-01 24 0.6 2 7 12
.
.
Kain 2 01 2002-01-01 1 0.1 6 12
Kain 2 01 2002-01-01 2 0.98 3 14 7
.
.
OMI 1 2018-01-01 1 0.89 12 10 20
.
.
Я хочу найти максимальные значения Load1
, Load2
, Load3
и найти что OP_DATE
, OP_TIME
и OP_HOUR
, когда это произошло.
Вывод, который я хочу получить:
Name ID max OP_DATE max OP_HOUR max OP_TIME max Load1 max Load2 max Load3
OMI 1 2011-06-11 22 ..... max values on dates
OMI 2A 2012-02-01 12 ..... max values on dates
Kain 2 01 2006-01-01 1..... max values on dates
Есть ли способ, которым я могу сделать это легко?
Я пытался:
unique_MAX = df.groupby(['Name','ID'])['Load1', 'Load2', 'Load3'].max().reset_index()
Но это сгруппировало бы только по датам и дало бы мне максимальный результат - я бы тоже хотел связанные даты, часы и время.