Рассмотрим журнал летней олимпиадной школы, в которой основными предметами выступают математика, физика и информатика. Данные об успеваемости представлены DataFrame со столбцами:name —имя;maths —оценка по математике; 4physics —оценка по физике;computer science —оценка по информатике. Напишите функцию best(), которая фильтрует всех «ударников» в журнале.
def best(df):
# вычисляем среднее значение для каждого столбца
means = df.mean(axis=1)
# находим индекс строки с наивысшей средней оценкой
best_index = means.idxmax()
# возвращаем строку с наивысшей средней оценкой
return df.loc[best_index]
Для того чтобы проверить работу функции, мы можем создать DataFrame, заполненный случайными оценками, и вызвать функцию best() для этого DataFrame. Например, вот так:
import pandas as pd
import numpy as np
# создаем DataFrame с случайными оценками
df = pd.DataFrame(np.random.randint(1, 6, size=(5, 3)),
columns=['maths', 'physics', 'computer science'],
index=['Alice', 'Bob', 'Charlie', 'Dave', 'Eve'])
# вызываем функцию best() для данного DataFrame
best_student = best(df)
# выводим результаты
print(best_student)
Результатом будет строка DataFrame с оценками лучшего ученика по всем трем предметам. ВПример вывода:
maths physics computer science
Charlie 5 5 5
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет