Загрузка данных и предварительный диагноз с использованием 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: