date value pointName pointNr connectedPoint ownerName
2018-05-08 2.039373e+08 Miami_1 P-00068 Point_1 Owner_1
2018-05-09 2.546125e+08 Miami_1 P-00068 Point_1 Owner_1
2018-05-09 2.546010e+08 Miami_2 P-00066 Point_1 Owner_2
2018-05-08 2.037412e+08 Miami_2 P-00066 Point_1 Owner_2
2018-05-09 7.142878e+08 New_York_1 P-00211 Point_2 Owner_3
2018-05-08 6.567392e+08 New_York_1 P-00211 Point_2 Owner_3
2018-05-08 6.567392e+08 New_York_2 P-00188 Point_2 Owner_4
2018-05-09 7.141274e+08 New_York_3 P-00126 Point_2 Owner_2
2018-05-09 7.142878e+08 New_York_2 P-00188 Point_2 Owner_4
2018-05-08 6.566841e+08 New_York_3 P-00126 Point_2 Owner_2
2018-05-08 0.000000e+00 Boston_1 P-00081 Point_3 Owner_4
2018-05-08 0.000000e+00 Boston_2 P-00105 Point_3 Owner_5
2018-05-09 6.987462e+07 Boston_2 P-00105 Point_3 Owner_5
2018-05-09 7.000680e+07 Boston_1 P-00081 Point_3 Owner_4
Приведенный выше фрагмент более или менее является результатом:
rng = pd.DataFrame(my_df[['date', 'value', 'pointName', 'pointNr', 'connectedPoint', 'ownerName]].sort_values('connectedPoint').reset_index(drop=True))
rng.head(14)
Я получил данные за весь год. Для этого примера я выбрал два дня (2018-05-08 и 2018-05-09)
Я хотел бы рассчитать сумму за период времени (здесь, в данном случае: два дня), но для каждогодень просто посчитав максимальное значение каждой подключенной точки.
Пример для 2018-05-08 в псевдоматематическом написании:сумма (max {Point1} + max {Point2} + max {Point3})= 2.039373e + 08 + 6.567392e + 08 +…Наконец, мы суммируем значения (означающие предварительно рассчитанные суммы) для каждого дня (день1 + день2 + день3 ...), в результате чего получается одно окончательное значение.
Я пробовал разные подходы с групповой обработкой, а также варианты:
rng['date'] = pd.to_datetime(rng['date'])
rng.index = rng['date']
rng.resample('D').max()
Извините, я новичок в питоне и пандах. Я искал в Интернете, но все еще не могу найти решение, хотя этот случай здесь очевиден для многих из вас. Я застрял.
Заранее спасибо!