Олимпиадный тренинг

Задача . 1 практика


Задача

Темы:

Раздел 1: Знакомство с данными (Basics)

Уровень: Легко. Учимся просто смотреть на таблицу.

  1. Загрузка: Импортируйте pandas и прочитайте файл StudentsPerformance.csv.

    • Подсказка: Используйте pd.read_csv('filename.csv').

  2. Первый взгляд: Выведите на экран первые 10 строк таблицы.

    • Подсказка: Метод .head(10).

  3. Размер: Узнайте, сколько всего учеников (строк) и параметров (столбцов).

    • Подсказка: Атрибут .shape (выводит кортеж из двух чисел).

  4. Типы данных: Проверьте типы данных каждого столбца.

    • Подсказка: Метод .info() или атрибут .dtypes.

  5. Названия: Выведите список названий всех столбцов.

    • Подсказка: Атрибут .columns.


Раздел 2: Очистка и подготовка (Data Cleaning)

Уровень: Ниже среднего. Учимся приводить данные в порядок.

  1. Пропуски: Посчитайте количество пустых ячеек для каждого столбца.

    • Подсказка: Комбинация .isnull().sum().

  2. Дубликаты: Найдите количество полных дубликатов в таблице.

    • Подсказка: .duplicated().sum().

  3. Переименование: Замените пробелы в названиях столбцов на нижнее подчеркивание.

    • Подсказка: Метод str.replace(' ', '_') или перезапись через df.columns.

  4. Регистр: Сделайте значения в столбце gender строчными (маленькими буквами).

    • Подсказка: Используйте .str.lower().

  5. Замена: В столбце test preparation course замените none на not completed.

    • Подсказка: Метод .replace('old', 'new').


Раздел 3: Фильтрация и выборка (Filtering)

Уровень: Средний. Учимся доставать нужные куски данных.

  1. Выбор столбцов: Создайте DataFrame только со столбцами gender и math_score.

    • Подсказка: Используйте двойные скобки: df[['col1', 'col2']].

  2. Математики: Выведите всех учеников, набравших по математике 100 баллов.

    • Подсказка: Фильтр df[df['math_score'] == 100].

  3. Этнические группы: Покажите учеников из group A или group E.

    • Подсказка: Метод .isin(['group A', 'group E']).

  4. Сложное условие: Найдите девушек (female), у которых балл по чтению > 90.

    • Подсказка: Используйте оператор & (и) между условиями в скобках.

  5. Образование родителей: Выведите учеников, чьи родители имеют степень магистра (master's degree).

    • Подсказка: Обычная фильтрация через ==.


Раздел 4: Расчеты и создание признаков (Feature Engineering)

Уровень: Средний+. Учимся создавать новые данные.

  1. Средний балл: Найдите средний балл по школе для предмета "Writing".

    • Подсказка: Вызовите метод .mean() для конкретного столбца.

  2. Общий балл: Создайте столбец total_score (сумма трех предметов).

    • Подсказка: df['new'] = df['col1'] + df['col2'] + df['col3'].

  3. Среднее арифметическое: Создайте столбец average_score для каждого ученика.

    • Подсказка: Разделите total_score на 3.

  4. Результат (Pass/Fail): Если балл по математике > 50, запишите True, иначе False.

    • Подсказка: Можно использовать условие df['math_score'] > 50.

  5. Размах: Найдите разницу между самым высоким и низким баллом по чтению.

    • Подсказка: Вычтите .min() из .max().


Раздел 5: Группировка и статистика (Aggregation)

Уровень: Выше среднего. Учимся делать выводы.

  1. Счетчик: Посчитайте количество мальчиков и девочек.

    • Подсказка: Метод .value_counts() для столбца gender.

  2. Сравнение: Найдите средний балл по математике отдельно для мальчиков и девочек.

    • Подсказка: .groupby('gender')['math_score'].mean().

  3. Влияние еды: Как тип обеда (lunch) влияет на средний total_score?

    • Подсказка: Сгруппируйте по lunch и посчитайте среднее для total_score.

  4. Подготовка: Найдите максимальный балл по письму среди тех, кто прошел курс и нет.

    • Подсказка: Группировка по test_preparation_course и метод .max().

  5. Образование: Сколько учеников приходится на каждый уровень образования родителей?

    • Подсказка: .value_counts() для соответствующего столбца.


Раздел 6: Продвинутый анализ (Deep Dive)

Уровень: Сложно. Почти реальный проект.

  1. Топ-5: Выведите данные 5 учеников с самым высоким total_score.

    • Подсказка: Метод .nlargest(5, 'total_score') или сортировка .sort_values().

  2. Отличники: Сколько учеников набрали > 90 по ВСЕМ предметам одновременно?

    • Подсказка: Используйте фильтрацию с несколькими & и метод len() или .shape[0].

  3. Зависимость: Выведите средние баллы, сгруппированные по образованию родителей.

    • Подсказка: Группировка по образованию и расчет среднего для всех числовых столбцов.

  4. Аномалии: Найдите учеников с математикой < 20, но чтением > 60.

    • Подсказка: Фильтрация с условием (math < 20) & (reading > 60).

  5. Сводная таблица: Создайте таблицу: строки — "Пол", столбцы — "Курс", значения — средний average_score.

    • Подсказка: Используйте функцию pd.pivot_table().


time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
Комментарий учителя