Среднее значение в DataFrame с Python

80
10

Я создаю DataFrame df1, который содержит для каждого дня недели количество времени активации для каждой машины.

machine1    38696 non-null float64
machine3 38697 non-null float64
machine5 38695 non-null float64
machine6 38695 non-null float64
machine7 38693 non-null float64
machine8 38696 non-null float64
date 38840 non-null datetime64[ns]
day_of_week 38840 non-null object
dtypes: datetime64[ns](2), float64(6), object(1)
memory usage: 2.7+ MB

Machine1 Machine3 Machine5 Machine6 Machine7 Machine8 date day_of_week
90.0 90.0 90.0 90.0 90.0 90.0 2015-07-31 Fri
0.0 0.0 0.0 0.0 0.0 0.0 2015-07-31 Mon
0.0 0.0 0.0 0.0 0.0 0.0 2015-07-31 Tues
0.0 0.0 0.0 0.0 0.0 0.0 2015-07-31 Fri
0.0 0.0 0.0 0.0 0.0 0.0 2015-07-31 Tues

Я пытаюсь создать еще один DataFrame, который извлекает для каждой машины среднее значение активации в день. Например:

            Machine1 Machine3 Machine5 Machine6 Machine7 Machine8
Mon 0 .. .. .. .. ..
Tue 0
wed 0
thu 0
fri 45

Можете ли вы помочь мне достичь этого самым умным способом?

спросил(а) 2021-01-19T14:32:08+03:00 9 месяцев, 1 неделя назад
1
Решение
92

IIUC вы можете использовать:

print (df.groupby('day_of_week').mean())
Machine1 Machine3 Machine5 Machine6 Machine7 Machine8
day_of_week
Fri 45.0 45.0 45.0 45.0 45.0 45.0
Mon 0.0 0.0 0.0 0.0 0.0 0.0
Tues 0.0 0.0 0.0 0.0 0.0 0.0

Если требуется выход с индексом реселлера:

print (df.groupby('day_of_week', as_index=False).mean())
day_of_week Machine1 Machine3 Machine5 Machine6 Machine7 Machine8
0 Fri 45.0 45.0 45.0 45.0 45.0 45.0
1 Mon 0.0 0.0 0.0 0.0 0.0 0.0
2 Tues 0.0 0.0 0.0 0.0 0.0 0.0

ответил(а) 2021-01-19T14:32:08+03:00 9 месяцев, 1 неделя назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема