У меня есть данные временного ряда, содержащие цены на газ для тысяч заправок (uuid
), обновляемые несколько раз в день в течение нескольких лет.
(доступно через: git clone https://dev.azure.com/tankerkoenig/tankerkoenig-data/_git/tankerkoenig-data)
df =
datetime,uuid,diesel,e5,e10
2018-01-31 00:01:06+01,c03c846e-64ec-437f-9a52-9eda8088c4b2,1.239,1.419,1.399
2018-01-31 00:03:06+01,6dc575da-3c85-430c-a17a-6efdae0dcf5a,1.249,1.419,1.399
Я хочу добавить столбец функций, в котором указывается значение ежедневно min()
и max()
для каждой цены diesel,e5,e10
для каждой отдельной uuid
(АЗС).
Поэтому я добавляю столбец даты:
df['date'] = index.date
и затем сгруппируйте кадр данных:
df.groupby(['uuid','date','datetime']).sum()
diesel e5 e10
uuid date datetime
00006210-0037-4444-8888-acdc00006210 2018-01-01 2018-01-01 06:33:06 1.189 1.389 1.369
2018-01-01 06:39:05 1.189 1.349 1.329
как мне теперь добавить определенные для группы столбцы
Я думаю, что использование GroupBy.apply () может быть правильным, но это очень медленно или не работает.
def fun(df):
df['diesel_low'] = df['diesel'].min()
return df
df.groupby(['uuid','date','datetime']).apply(lambda x: fun(x))