4.3 ВЫБОР И ФИЛЬТРАЦИЯ ДАННЫХ

4.3.1 Отличие DataFrame от списка списков

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

 

Таблица 4.3.1 – DataFrame и список списков

Список списков

DataFrame

Нет имён столбцов

Есть имена столбцов

Все значения – строки

Автоматическое распознавание типов

Нет встроенных методов анализа

Есть фильтрация, группировка

Нет индекса

Есть индекс строк

 

Таким образом, DataFrame является не просто контейнером для хранения данных, а полноценной аналитической структурой, обеспечивающей удобство обработки, интерпретации и статистического анализа.

 

Почему список списков неудобен для аналитики? Список списков позволяет хранить табличные данные, однако при анализе возникают существенные ограничения.

Например:

data = [
    ["Анна", 21, 88],
    ["Иван", 22, 75]
]

Для доступа к оценке необходимо помнить индекс:

print(data[0][2])

 

Такой подход:

 

Почему DataFrame удобнее?  В DataFrame каждый столбец имеет собственное имя.

Например:

print(df["score"])

 

Поэтому: аналитик работает не с индексами,
а с признаками объектов.

DataFrame позволяет:

 

Аналитический смысл DataFrame

DataFrame моделирует реальный набор данных.

 

Таблица 4.3.1 – Аналитический смысл DataFrame

Компонент

Аналитический смысл

Строка

объект наблюдения

Столбец

признак объекта

Значение

результат измерения

Индекс

идентификатор строки

 

Именно поэтому DataFrame является базовой структурой аналитики данных в Python.

 

4.3.2 Просмотр структуры таблицы

Перед началом анализа необходимо убедиться, что данные загружены корректно. Для этого используются диагностические методы DataFrame (таблица 4.3.2).

 

Таблица 4.3.2 – Методы первичной диагностики DataFrame

Метод

Пример

Что возвращает

Назначение

Первые строки

df.head()

Подтаблицу

Быстрая проверка содержимого

Имена столбцов

df.columns

Список названий

Проверка структуры

Типы данных

df.dtypes

Типы столбцов

Контроль корректности типов

 

Пример использования

print(df.head())     # вывод первых строктаблицы
print(df.columns)    # список названий столбцов
print(df.dtypes)     # тип данных каждого столбца

 

 

Метод head(). Метод head() выводит первые строки таблицы.

 

Например:

print(df.head())

 

Метод используется для:

 

Обычно аналитик начинает работу с DataFrame именно с просмотра первых строк таблицы.

 

Метод columns. Метод columns возвращает список названий столбцов.

Например:

print(df.columns)

 

Это позволяет:

 

Имена столбцов играют важную роль, поскольку именно через них выполняется доступ к данным.

Метод dtypes. Метод dtypes показывает тип данных каждого столбца.

Например:

print(df.dtypes)

 

Таблица 4.3.3 – Возможные типы

Тип

Назначение

int64

целые числа

float64

вещественные числа

object

текстовые данные

 

Контроль типов данных особенно важен перед:

 

Методический акцент. Эти команды позволяют:

·       убедиться, что файл загружен без ошибок;

·       проверить, правильно ли распознаны числовые столбцы;

·       обнаружить возможные несоответствия структуры.

Просмотр структуры – обязательный шаг перед фильтрацией, агрегированием и построением моделей.

 

4.3.3 Выбор и фильтрация данных

Основные операции доступа и отбора данных в DataFrame представлены в таблице (Таблица 4.3.4).

Таблица 4.3.4 – Основные операции выбора и фильтрации

Тип операции

Пример

Результат

Назначение

Выбор одного столбца

df["score"]

Объект Series

Доступ к значениям одного признака

Выбор нескольких столбцов

df[["name", "score"]]

Новый DataFrame

Формирование подтаблицы

Фильтрация по условию

df[df["score"] > 80]

Отфильтрованный DataFrame

Отбор строк по логическому условию

 

Пояснение к операциям выбора и фильтрации:

·       при выборе столбца возвращается объект типа Series;

·       при использовании двойных скобок возвращается новый DataFrame;

·       при фильтрации создаётся логическая маска, и Pandas автоматически оставляет только строки, удовлетворяющие условию.

Таким образом, DataFrame позволяет выполнять выборки без циклов и ручной обработки строк.

Выбор одного столбца. Для доступа к одному признаку используется:

df["score"]

Результат: возвращается объект типа:

Series.

 

Series представляет собой одномерную структуру данных Pandas,
содержащую значения одного признака.

Выбор нескольких столбцов. Для формирования подтаблицы используются двойные скобки.

Например:

df[["name", "score"]]

 

Результат: создаётся новый DataFrame, содержащий только выбранные признаки.

Таким образом, аналитик может формировать специализированные выборки данных.

Фильтрация данных по условию. Одной из важнейших возможностей Pandas является фильтрация строк.

Например:

df[df["score"] > 80]

 

Pandas: оставляет только строки, удовлетворяющие условию.

Как работает фильтрация? При фильтрации создаётся: логическая маска.

Например:

df["score"] > 80

 

Результат:

True
False
True

После этого Pandas автоматически оставляет только строки со значением: True.

 

Почему фильтрация важна для аналитики? Фильтрация используется:

 

Например: можно выбрать:

Аналитический смысл выборки данных. Главная идея Pandas заключается в том, что аналитик работает:

Поэтому: DataFrame позволяет выполнять выборки: без циклов и ручной обработки строк.

 

Итоги темы. В теме были рассмотрены:

Pandas позволяет выполнять аналитическую обработку данных через признаки, условия и выборки, что делает DataFrame основной структурой прикладного анализа данных.