UsageDate CustID1 CustID2 .... CustIDn
0 2018-01-01 00:00:00 1.095
1 2018-01-01 01:00:00 1.129
2 2018-01-01 02:00:00 1.165
3 2018-01-01 04:00:00 1.697
.
.
m 2018-31-01 23:00:00 1.835 (m,n)
Фрейм данных (df) имеет m строк и n столбцов.m - почасовой индекс TimeSeries, который начинается с первого часа месяца до последнего часа месяца.Колонны - это клиенты, которых почти 100 000.Значения в каждой ячейке Dataframe являются значениями энергопотребления.
Для каждого клиента мне нужно рассчитать: 1) Среднее значение каждого часа использования, то есть среднее значение 1-го часа каждого дня в месяце, 2-го часа каждого дня в месяце и т. Д.
2) Сумма использования каждого клиента
3) 3 часа работы - для клиента x это может быть "2018-01-01 01:00:00", "2018-11-0105:00:00 "" 2018-21-01 17:00:00 "
4) Нижние 3 часа использования - объяснение, аналогичное приведенному выше
5) Среднее использование для каждого клиента вмесяц
Моя главная проблема заключается в том, как собирать данные как по каждому клиенту, так и по часу дня или дня вместе.
Для суммирования использования для каждого клиента я попытался: df_temp = pd.DataFrame(columns=["TotalUsage"])
for col in df.columns:
`df_temp[col,"TotalUsage"] = df[col].apply.sum()`
Однако эта и многие версии, которые я попробовал,не помогает мне решить проблему.
Пожалуйста, помогите мне с подходом и как думать о таких проблемах.
Кроме того, поскольку размер данных большой, было бы полезно поговорить о сложности вычислений и о том, как мы можем уменьшить время вычислений.