#python #pandas #dataframe
#python #pandas #фрейм данных
Вопрос:
Приведите пример фрейма данных ниже (фактический список сайтов и серверов для каждого сайта очень большой), как мне извлечь / распечатать одно значение DSKPERCENT_MEAN для каждого сайта?
Site Server DSKPERCENT DSKPERCENT_MEAN
A 1 12 11
A 2 10 11
A 3 11 11
B 1 9 9
B 2 12 9
B 3 7 9
C 1 12 13
C 2 12 13
C 3 16 13
Ответ №1:
Вы имеете в виду, что хотите (?):
df.groupby('Site')['DSKPERCENT_MEAN'].max()
Ответ №2:
df.groupby(['Site'])['DSKPERCENT_MEAN'].mean()
Комментарии:
1. @Subbu не будет ли эта команда вычислять среднее значение на основе групп ‘Site’ и ‘DSKPERCENT’? Я уже вычислил значение DSKPERCENT_MEAN, мне просто нужно извлечь уникальное вычисленное среднее значение для каждого сайта
2. @odonnry изменил ответ, чтобы извлекать уникальные значения из DSKPERCENT_MEAN
Ответ №3:
Далее из ответа Serial Lazer. Я полагаю, вам не нужно добавлять еще один столбец [‘DSKPERCENT_MEAN’], поскольку все сайты имеют одинаковое среднее значение. Если вы хотите создать новый фрейм данных, который выдает только среднее значение DSKPERCENT, я предлагаю использовать приведенный ниже код:
df1 = df.groupby('Site')['DSKPERCENT'].mean().to_frame(name='DSKPERCENT_MEAN').reset_index()
.to_frame(name = ‘DSKPERCENT_MEAN’) позволяет создать новый фрейм данных из результата Groupby
.reset_index() сбрасывает столбец ‘DSKPERCENT_MEAN’ в ту же строку, что и ‘Site’
вывод df1:
Site DSKPERCENT_MEAN
0 A 11
1 B 9
2 C 13