Перейти к основному содержанию
EDU-MMCS
Вы используете гостевой доступ (Вход)

Основы работы с данными для ИИ

  1. В начало
  2. Курсы
  3. Осенний семестр
  4. Фундаментальная информатика и ИТ
  5. DataSc101
  6. Анализ данных в Python
  7. Лабораторная работа 5. Анализ данных в Python

Лабораторная работа 5. Анализ данных в Python

Требуемые условия завершения
Открыто с: среда, 8 октября 2025, 00:00
Срок сдачи: среда, 15 октября 2025, 00:00

Современный анализ данных опирается на работу с табличными структурами: каждая строка — это наблюдение (объект), а каждый столбец — его характеристика (признак).
В Python основной инструмент для работы с такими данными — библиотека pandas, которая предоставляет:

  • DataFrame — двумерную структуру данных, похожую на таблицу в Excel или БД.

  • Series — одномерную структуру, обычно представляющую один столбец.


📈 Этапы анализа данных

  1. 📥 Загрузка данных — чтение из файлов (CSV, Excel), баз данных или API.

  2. 🔍 Первичный анализ — проверка структуры, типов данных, пропусков.

  3. 🧹 Очистка данных — удаление/заполнение пропусков, приведение типов.

  4. 🛠 Преобразование — создание новых признаков, фильтрация, сортировка.

  5. 📊 Аналитика — группировка, агрегирование, статистика.

  6. 📉 Визуализация — представление данных в виде графиков.

  7. 📚 Выводы — интерпретация результатов анализа.


📚 Подсказки: основные методы и их назначение

Ниже приведены часто используемые методы pandas и их функции.


📥 Загрузка и обзор данных

МетодНазначение
df = pd.read_csv("file.csv")Читает CSV-файл и записывает в DataFrame
df.head(количество строк) / df.tail(количество строк)Показывает первые 5 и последние 10 строк
df.info()Отображает информацию о типах данных и пропусках
df.describe()Статистика числовых столбцов
df.shapeРазмер таблицы (строки, столбцы)
df.columnsСписок названий всех столбцов
df.dtypesТип данных каждого столбца

🧹 Очистка и подготовка данных

МетодНазначение
df.isnull().sum()Считает количество пропусков
df.dropna()Удаляет строки с пропусками
df.fillna("Unknown")Заполняет пропуски указанным значением
df['col'].astype(int)Преобразует тип данных столбца
df.duplicated()Проверяет наличие дубликатов
df.drop_duplicates()Удаляет дубликаты строк

🔍 Извлечение и фильтрация

МетодНазначение
df['column']Извлекает один столбец
df[['col1', 'col2']]Извлекает несколько столбцов
df.iloc[0:5]Извлекает строки по индексу
df[df['column'] > 100]Фильтрует строки по условию
df.sort_values('column')Сортирует таблицу по значениям

🛠 Преобразование данных

МетодНазначение
df['new_col'] = df['col1'] + df['col2']Создание нового столбца
pd.to_datetime(df['date'])Преобразует текст в формат даты
.dt.yearИзвлекает год из даты
df['col'].apply(func)Применяет функцию к каждому элементу

📚 Теория: функция lambda и создание категориальных признаков

Иногда необходимо создать новый признак (столбец), который классифицирует объекты по категориям. Такой столбец называется категориальным — его значения принадлежат ограниченному набору категорий.

Например:

  • Страна: 🇷🇺 Россия, 🇩🇪 Германия, 🇺🇸 США

  • Тип вуза: государственный, частный

  • Возрастная группа: Ancient / Old / Modern

Для таких задач часто используется функция lambda — это короткая анонимная функция, которую можно применить к каждому элементу столбца:

lambda аргументы: выражение

Пример: классификация по возрасту университета:

df['Age_Group'] = df['Age'].apply( lambda x: 'Ancient' if x > 300 else ('Old' if x >= 100 else 'Modern') )

📌 Здесь lambda x: ... — это мини-функция, которая проверяет значение x и возвращает одну из трёх категорий.

Категориальные признаки удобны для:

  • группировки данных;

  • построения диаграмм;

  • анализа распределения.


📉 Теория: визуализация данных в Python

Визуализация — важнейший этап анализа. Даже сложные зависимости часто становятся очевидны именно на графиках. Основные библиотеки: Matplotlib, pandas.plot, Seaborn.

В pandas можно строить графики напрямую из DataFrame с помощью метода .plot() или .hist().


📊 Основные типы графиков

ТипНазначениеПример кода
📈 Линейный графикИзменение данных во времениdf['year_founded'].plot()
📊 Столбчатая диаграммаСравнение категорийdf['country'].value_counts().plot(kind='bar')
📉 ГистограммаРаспределение числовых данныхdf['Age'].hist(bins=20)
🥧 Круговая диаграммаДоли категорийdf['Age_Group'].value_counts().plot(kind='pie')

📌 Пояснение к основным параметрам:

  • kind — тип графика ('bar', 'pie', 'line', 'hist')

  • bins — количество интервалов (для гистограмм)

  • title — заголовок графика

  • xlabel, ylabel — подписи осей

Пример:

import matplotlib.pyplot as plt df['Age'].hist(bins=20) plt.title("Распределение возраста университетов") plt.xlabel("Возраст (лет)") plt.ylabel("Количество") plt.show()

🧑‍💻 Практическая часть


1. Подготовка среды и загрузка данных

Задания:

  1. Импортируйте pandas и numpy.

  2. Загрузите CSV-файл с данными.

  3. Отобразите первые и последние 5 строк таблицы.

  4. Определите размер таблицы и типы данных.

  5. Проверьте наличие пропусков.


2. Первичный анализ данных

Задания

  • Удалите дубликаты
  • Найдите столбцы с пропущенными значениями и заполните их.
  • Для форматирования даты используйте следующий код:
df['inception'] = pd.to_datetime(df['inception'], errors='coerce', utc=True)

  1. Посчитайте количество уникальных стран.

  2. Найдите минимальный и максимальный год основания университетов.

  3. Рассчитайте средний и медианный год основания.

  4. Отсортируйте университеты по году основания.


3. Очистка и преобразование данных


3.1. Преобразование типов

  • Создайте столбец с годом основания.

3.2. Создание столбца age

  • Рассчитайте возраст университета на 2025 год.

3.3. Категориальный столбец age_group

  • С помощью lambda создайте категориальный столбец:

    • 🏛️ Ancient — старше 300 лет

    • 📜 Old — 100–300 лет

    • 🎓 Modern — младше 100 лет


4. Аналитика и статистика

 Задания:

  1. Найдите самый старый и самый новый университет.

  2. Рассчитайте средний и медианный возраст.

  3. Определите 10 стран с наибольшим количеством университетов.

    top_10_countries = df['country'].value_counts().head(10)
    или
    df.groupby('country').size().sort_values(ascending=False).head(10)

  4. Найдите средний возраст университетов по странам.

  5. Определите страны с самой «старой» и самой «молодой» системой образования.

  6. Подсчитайте количество университетов по возрастным категориям.


5. Визуализация данных

 Задания:

  1. Постройте гистограмму распределения годов основания.

  2. Постройте столбчатую диаграмму топ-10 стран.

  3. Постройте круговую диаграмму распределения категорий age_group.


6. Итоги и выводы

 Задания:

  1. Сформулируйте 4–5 выводов:

    • Какие страны лидируют по количеству университетов?

    • Каков средний возраст вузов?

    • Какие годы были наиболее активными?

    • Какие категории университетов преобладают?


  • wikidata_universities_sample.csv wikidata_universities_sample.csv
    7 октября 2025, 21:24
◄ Лабораторная работа 4. Работа с картами в Яндекс Даталенс
Пропустить Навигация
Навигация
  • В начало

    • Страницы сайта

      • Мои курсы

      • Теги

    • Мои курсы

    • Курсы

      • Осенний семестр

        • Прикладная математика и информатика

        • Фундаментальная информатика и ИТ

          • Probability Theory and Mathematical Statistics

          • Научные Вычислительные Пакеты

          • DataSc101

            • Общее

            • Основы работы с Git и GitHub

            • Работа с Яндекс. Даталенс

            • Анализ данных в Python

              • ЗаданиеЛабораторная работа 5. Анализ данных в Python

            • Тема 4

            • Тема 5

            • Тема 6

            • Тема 7

            • Тема 8

          • NLP (7 семестр)

          • Compiler Development

          • CMVSM

          • АЗПК

          • Frontend

          • ТеорЯП

          • Ruby Eng

          • EngCA&OS

        • Математика, механика

        • Педагогическое образование

        • Магистратура

          • Разработка мобильных приложений и компьютерных игр

        • Аспирантура

        • Вечернее отделение

        • Другое

        • Информатика-Осень-ПМИ-2

        • Информатика-осень-ПМИ-1

        • ИММвс

        • ФИиТ eng 2025

      • Весенний семестр

        • Прикладная математика и информатика

        • Фундаментальная информатика и ИТ

        • Математика, механика

        • Педагогическое образование

        • Магистратура

          • Разработка мобильных приложений и компьютерных игр

        • Аспирантура

        • Вечернее отделение

        • Другое

      • Воскресная компьютерная школа

        • Пользователь компьютера плюс

        • Пользователь прикладных программ

        • Программирование I ступень

        • Программирование II ступень

        • Программирование III ступень

        • Архив

      • Воскресная математическая школа

        • Открытое тестирование РНОМЦ и мехмата ЮФУ - 2025

        • Олимпиадная математическая школа

        • Повышение квалификации

        • Доступная математика

        • Лаборатория математического онлайн-образования мех...

        • Осенняя универсиада

        • Научно-практическая конференция

        • ВМШ

          • ВМШ -2025

        • Летняя олимпиадная математическая школа РНОМЦ и ме...

      • Государственная итоговая аттестация

      • Дополнительное образование

      • Олимпиады

      • Видеолекции

      • Разное

      • Архив курсов

      • Заочная школа мехмата ЮФУ

Служба поддержки сайта
Вы используете гостевой доступ (Вход)
DataSc101
Сводка хранения данных
Скачать мобильное приложение Яндекс.Метрика