January 28, 2021

Загрузка данных и предварительный диагноз с использованием Pandas

Рассмотрим  вопросы загрузки и предварительного изучения информации с помощью  библиотеки Pandas – наиболее продвинутого инструмента диагностики,  обработки и анализа данных на языке Python.

Для  демонстрационных целей будем использовать детальную информацию о  результатах и участниках поединков по смешанным единоборствам,  организованных американской спортивной организацией Ultimate Fighting  Championship (UFC) c ноября 1993 г. по июнь 2019 г. Сведения взяты на сайте «Kaggle»  (самый профессиональный ресурс для проведения конкурсов по исследованию  данных, принадлежит корпорации Google) и были собраны из официальной  статистики UFC.

Прежде всего импортируем необходимую для работы библиотеку:

import pandas as pd

Базовыми  структурами для работы с данными в библиотеке Pandas являются DataFrame  – аналог двумерного массива с возможностью задания многоуровневых  индексов строк и столбцов (это фактически позволяет представлять в нем  информацию произвольной размерности), а также Series – аналог столбца  данных. Для загрузки информации, представленной в одном из наиболее  распространенных форматов для хранения табличных данных – csv, в Pandas  предусмотрена функция read_csv. В  качестве ее параметров фигурируют путь к файлу, символы разделителя,  кодировка, список имен столбцов и ряд других. Например, вот как  загружается файл с относительным путем 'data/ufc/data.csv' в объект  DataFrame:

battles_df = pd.read_csv('data/ufc/data.csv')

Посмотреть  содержимое структуры можно, используя встроенные средства в программной  оболочке, в которой вы работаете, например, в Spyder или PyCharm  (описывал процесс установки и настройки в статье). Также частичный вывод результатов можно осуществить путем вызова методов head() и tail() объекта DataFrame, которые показывают первые и последние n строк объекта (по умолчанию n=5):

Для  получения краткого описания (число строк и столбцов, типы значений,  размер используемой памяти) в объекте DataFrame предусмотрен метод info:

Вызвав свойство dtypes, можно получить информацию о столбцах и их типах:

Перечислить все уникальные значения некоторого столбца позволяет метод unique:

Родственный метод value_counts объекта Series помимо уникальных значений элементов выводит также информацию об их количестве:

Получить список имен столбцов и индексов строк можно, обратившись к свойствам columns и index DataFrame:

Для трансформации всех данных из таблицы в массив numpy нужно обратиться к свойству values: