Python часто используется для машинного обучения, а также анализа данных. Для этого к языку программирования подключаются различные библиотеки: NumPy, Matplotlib, TensorFlow и так далее. Каждому, кто планирует заниматься BigData и анализом информации, рекомендуется обратить внимание на Pandas. Это функциональный инструмент для Питона, который поможет работать с данными и обрабатывать их.

Далее предстоит получше изучить библиотеку Pandas, а также один из ее важнейших компонентов – DataFrame. Предложенные ниже сведения ориентированы в большей степени на разработчиков с опытом.

Pandas – это…

The Pandas – основная библиотека Питона, предназначенная для работы с информацией и ее большими объемами. Активно применяется в аналитике и BigData. The Pandas была создана в 2008 году. С тех пор она стремительно развивается и совершенствуется. Изначально библиотека распространялась компанией AQR Capital, но через код соответствующее «программное обеспечение» получило открытый исходный код.

Сферы применения

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

  1. Аналитика информации: маркетинг, продуктовый анализ и другое. Рассматриваемый «пакет решений» для Python позволяет анализировать информацию и подготавливать ее. Некоторые процессы за счет встроенных инструментов могут быть автоматизированы.
  2. BigData и Data Science. При помощи Пандас разработчики и аналитики смогут подготовить, а также организовать первичный анализ BigData для дальнейшего применения в глубоком/машинном обучении.
  3. Статистика. В библиотеке поддерживаются ключевые статистические методы, которые позволяют оперировать информацией. Примеры – распределение значений по квинтилям, расчет средних параметров.

Большинство разработчиков, если они не углубляются в обозначенные области, могут не изучать the Python and the DataFrame Pandas. Остальным соответствующая библиотека покажется полезной, особенно если знать, как ей управлять.

Установка

Перед изучением структур информации в изучаемой библиотеке, а также способов создания for dataframe in Python, необходимо сначала установить рассматриваемый «фреймворк» на устройство. Если разработчик пользуется the Jupyter Notebook и Colab, ничего дополнительно ставить не придется. Пандас является стандартной библиотекой. Она доступна сразу после запуска Colab или Jupyter Notebook. Все, что останется разработчику – это импортировать библиотеку в имеющийся исходный код будущей программы:

import pandas as pd 

PD – сокращение, которое является общепринятым у разработчиков на Питоне. Оно используется для обозначения библиотеки Пандас. Вместе с таким обозначением не придется каждый раз писать длинное «pandas» в исходном коде.

Структуры данных

The Pandas Dataframe – это одна из самых значимых структурных единиц библиотеки. Для грамотного управления и создания соответствующего объекта, каждый разработчик должен понимать структуру информации и Пандас.

Всего «фреймворк» поддерживает три вида структур данных:

  • series – одномерный массив неизменного размера;
  • the data frame – двумерная табличная структура с изменяемыми размерами и неоднородно типизированными столбцами;
  • panel – трехмерный массив, поддерживающий изменение размерности.

Далее каждая представленная единица будет рассмотрена более подробно. Особое внимание будет уделено the data frame (датафрейм) и принципам его создания.

Series

Series (или «серии») – объект рассматриваемом библиотеки, который создан для представления одномерных структурных единиц. Они напоминают массивы, но имеют дополнительные возможности.

Структура a Series отличается of the DataFrame и является более простой. Включает в себя два массива:

  • основной – тот, что содержит информацию (любого типа NumPy);
  • дополнительный (the index) – включает в себя метки.

Проще всего the Series может быть представлен как столбец таблицы, включающий в себя некоторую последовательность значений. Каждый компонент имеет индекс – номер соответствующей строки.

Вот так создается простой Series:

Pandas: как создавать DataFrames

После обработки соответствующего фрагмента на экране появится следующий результат:

Pandas: как создавать DataFrames

The Series будет отображаться как таблица с индексами элементов в первом столбце и с присваиваемыми значениями – во втором.

Panel

Изучая the Pandas (pd) dataframe, не нужно забывать о других структурных единицах библиотеки – без них полноценно пользоваться продуктом Питона не получится. Не самым распространенным, но встречающимся в разработке компонентом является Panel.

The Panel – это второй тип структур данных. Он является более сложным компонентом, чем Series и Pandas (pd) dataframe. Panel представляет собой панель с трехмерной структурой. Она включает в себя три оси для выполнения различных функций:

  1. Items – ось 0. Каждый его компонент будет соответствовать the Dataframe в нем.
  2. Major_axis – ось 1. Здесь наблюдается соответствие строкам каждого the Data Frame.
  3. Minor_axis – ось 2. Соответствует Dataframe-columns.
Pandas: как создавать DataFrames

Выше можно увидеть наглядный синтаксис, при помощи которого разработчик сможет создать Panel в Пандас.

DataFrame – основной компонент

Pandas Dataframe – наиболее распространенный элемент изучаемой библиотеки. Он используется для создания основного количества баз информации. Представляет собой двумерную структуру, которая напоминает массивы. Входные данные в датафрейм оформляются как строки и столбцы.

Размер структуры Pandas Dataframe разрешено менять. Соответствующий компонент служит стандартным способом хранения информации. Он формирует базу по типу таблицы-SQL или любой другой таблицы (a table).

The Data фрейм может быть с жестко закодированными данными. Информация поддерживает импорт в CSV или TSV, а также Excel-документ, SQL-таблицу и не только.

Dataframe Data имеет следующий синтаксис:

Pandas: как создавать DataFrames

Здесь:

  1. Input_data – ввод. Он может принимать списки, массивы, ряды и иные структурные дата единицы.
  2. Index value – значения индекса. Они будут передаваться в dataframe.
  3. Data type или dtype – функция, которая распознает тип используемой информации для dataframe-columns.
  4. Copy – копирование. Значение по умолчанию для соответствующего параметра – false (ложь, неверно).

Столбцы – это метки данных столбцов. Создавать дата фреймы можно несколькими способами. О них будет рассказано позже. Эта информация пригодится как новичкам, так и более опытным разработчикам.

Импорт информации

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

Изучаемый «фреймворк» поддерживает несколько способов импорта (importing) данных. Пример – считывание из словаря (a dictionary), списка или кортежа. Наиболее распространенный вариант – использование csv-документов. Они чаще всего применяются при анализе данных. Для импорта используется команда: pd.read_csv. Для оперирования импортирования the dataframe or series, поддерживаются два параметра:

  1. Sep. С его помощью разработчик сможет явно указать разделитель, используемый в импортированном документе. По умолчанию соответствующее значение – это символ запятой. Он используется в качестве «стандартного» разделителя в csv-документах. Sep будет особо полезен тогда, когда в исходном файле изначально применяются нестандартные разделяющие символы. Примеры – точки с запятыми или табуляция.
  2. Dtypes. Этот параметр дает возможность явно указать тип данный columns in csv-документ. Параметр поможет в ситуациях, когда в исходном файле автоматическое определение задействованного формата неверное. Пример – дата часто импортируется в качестве строковых переменных, несмотря на наличие отдельного типа для подобных сведений.

Стоит обратить внимание на то, что при работе в Google Colab или Jupyter Notebook для вывода Dataframe data или Series на дисплей устройства не нужно использовать команду print. Пандас умеет отображать сведения без нее. При формировании a function print(df), табличная верстка будет утрачена.

Методы для статистического анализа

A dataframe from Pandas (pd) часто используется для того, чтобы анализировать различные массивы данных. Для нормализации работы с библиотекой разработчикам приходится применять встроенные методы. Они дают возможность быстро и качественно выполнять аналитические операции.

В Pandas очень много разнообразных методов для анализа data (дата). Далее представлены наиболее распространенные из них:

Что за метод (название)Описание
CountПодсчет всех непустых наблюдений. На выходе система передаст количество соответствующих компонентов.
MeanВозврат среднего значения всех элементов
SumСумма всех компонентов данных
MedianПолучение медианного параметра
ModeОтвечает за возврат режа всех информационных компонентов
StdСтандартное отклонение
MinМинимальный компонент среди всех входных информационных единиц
MaxМаксимальный элемент среди всех входных
ProdПроизведение имеющихся значений данных
AbsАбсолютное значение
CumprodСовокупное произведение значений
CumsumКумулятивная сумма
DescribeОтображение статистической сводки всех записей за один снимок (сумма, количество, минимумы и максимумы, средние значения и так далее).

Таблица, представленная выше, поможет быстрее анализировать in the dataframe data, а также управлять соответствующими сведениями. Это не все методы, которые используются библиотекой, но они встречаются в разработке и аналитике чаще остальных.

Как создать DataFrame – обзор методов

Структура the dataframe of PD – это rows and columns (строки и столбцы). Лучше всего представлять соответствующий компонент в виде «стандартной» таблицы, которая заполнена различными материалами. Существуют различные способы создания (creating) дата фреймов. Они могут быть сформированы на базе:

  • других дата frames;
  • структурные единиц типа Series;
  • структурированных ndarray;
  • двумерных ndarray;
  • словарей, в качестве элементов которого выступают списки, одномерные массивы (array), другие словари и Series.

Далее предстоит познакомиться с (with the) различными методами формирования Pandas a Dataframe-columns и the rows. Предложенные ниже концепции являются универсальными. Они помогут разработчикам быстро ориентироваться в оптимальном решении для конкретного анализа и приложения.

Пустой фрейм

Программист может создать (creation) пустой frame. Это «стандартный» случай, для которого не потребуется никаких дополнительных знаний. Для формирования пустого информационного фрейма достаточно воспользоваться вызовом стандартного конструктора:

# Импортирование библиотеки 

import pandas as pd 

# Вызов конструктора 

df = pd.DataFrame() 

print(df) 

Pandas: как создавать DataFrames

Выше – наглядный пример кода, а также результата его обработки. Create a dataframe without data (создание пустого датафрейма) – операция, которая в практических задачах используется не слишком часто. Это элементарный случай. Есть и другие методы сделать (to create) dataframe data.

Добавление столбцов

Основная единица измерения датафрейма – это the column (столбцы). Доступ к ним всегда является более прямой, чем к строкам (rows). При помощи обычной скобочной нотации обращение к столбцам осуществляется раньше, чем к строкам. Это противоречит общей практике.

Добавить новый столбец в the DataFrame можно путем присваивания ему значений, которые должен иметь столбец. Операция производится подобно работе со словарями и скобочными нотациями.:

Pandas: как создавать DataFrames

Выше – пример, где отсутствуют значения. Из-за этого в первой строке указывается None. Фактически это – пустой фрейм.

Еще один способ добавления столбцов (dataframe-columns) является применение функции assign. Она дает возможность добавлять колонки к уже созданным. В исходный датафрейм информация не вставляется. Вместо этого система добавляет новый the Dataframe, который включает не только старые столбцы, но и новые:

Pandas: как создавать DataFrames
Pandas: как создавать DataFrames

Стоит обратить внимание на то, что при назначении уже существующих dataframe-columns происходит перезапись их значений. В представленном примере из-за этого не случится ничего страшного, потому что изначально фрейм пустой.

При помощи словаря

Creates the dataframe через одномерный словарь – более распространенная ситуация. В этом случае компонентами the dict будут выступать списки и структуры Series. Сначала разработчику потребуется создать Series:

Pandas: как создавать DataFrames

Далее потребуется построить аналогичный словарь, но базирующийся на компонентах ndarray:

Pandas: как создавать DataFrames

Можно заметить, что результаты будут одинаковыми. Вместо ndarray допускается использование обычного списка из Питона.

Из массива

Еще один способ формирования the Pandas dataframe – выгрузка из массива. Чтобы лучше понять соответствующий принцип, рекомендуется изучать его на наглядном примере. В качестве массива с информацией будет использоваться data.

Для формирования DataFrame потребуется вызвать конструктор и передать его в качестве параметра список data. Для этого используется DataFrame(data). Соответствующая команда будет возвращать объект Датафрейм, созданный с заданными параметрами. Его можно использовать для дальнейших операций.

Вот – массив, который состоит из трех списков, в каждом из которых по 4 значения. Они образовывают следующую таблицу:

Pandas: как создавать DataFrames

Из него формируется ДатаФрейм. Для этого рекомендуется воспользоваться следующим фрагментом кода:

Pandas: как создавать DataFrames

При выводе результата на экран отобразится следующая ситуация:

Pandas: как создавать DataFrames

Стоит обратить внимание на следующие особенности концепции создания the dataframes:

  1. Каждая строка будет соответствовать каждой строке в исходном документе с массивом.
  2. Если нужно, чтобы каждая строка (string) в заданном множестве значений отображалась как столбец в the Pandas Dataframe, потребуется поменять столбцы и строки местами при создании рассматриваемого компонента.
  3. Для того, чтобы поменять столбцы и строки, используется функция transpose (df = pd.DataFrame(data).transpose().)
  4. Если необходимо задать собственные имена столбцов (dataframe-name), допустимо добавить новый параметр. Он называется columns и пишется в вызов конструктора. В нем останется перечислить желаемые «названия».

Запомнить все эти правила, еще один метод создания Датафреймов будет полностью понятен. Но рассмотренные приемы не являются исчерпывающими. Существуют иные методы, которые помогут create the dataframe.

Список словарей

Для создания Датафрейма из списка словарей необходимо предоставить список (list) конструктору класса через: DataFrame(list). Соответствующий вызов вернет объект ДатаФрейм, который включает в себя информацию из списка с ключами, которые выступают именами столбцов.

Вот – наглядный пример фрагмента кода с рассматриваемым решением:

Pandas: как создавать DataFrames

И результат обработки:

Pandas: как создавать DataFrames

Основная проблема рассматриваемого подхода к create DataFrame при помощи списка словарей заключается в том, что разработчик должен убедиться в ключах. В каждом предложенном dict они обязательно должны быть согласованными друг с другом, а также корректными.

Целевой дата фрейм получит столько столбцов, сколько в словарях размещается уникальных ключей. Пример – ключ, который связан с именем. В одном словаре он отображается как Name, во втором – name, в третьем – NAME. В конечном итоге разработчик получит три разных колонки (регистр принимается во внимание) для информации об имени. Такая ситуация часто доставляет определенные проблемы для анализа. Множество значений в результирующем фрейме окажется None.

Массив NumPy

Иногда требуется обработать pd-dataframe-columns, которые расположены внутри массива NumPy. Для такого случая программист должен вызвать конструктор через DataFrame(array). Чтобы задать имена столбцов, они должны быть прописаны в отдельном параметре функции – columns.

Pandas: как создавать DataFrames
Pandas: как создавать DataFrames

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

Из CSV-документа

Работа с CSV-файлами при анализе информации и в BigData – явление, которое не удивляет разработчиков. Поэтому достаточно часто приходится формировать фреймы через заранее подготовленные документы.

CSV или Comma Separated Value представляет собой текстовый документ в виде таблицы. Его значения разделены специальными символами. По умолчанию – запятыми. Такие документы часто имеют первую строку, выступающей в виде заголовка с именами имеющихся столбцов.

Чтобы создать при помощи такого приема Pandas-dataframe-columns, можно пользоваться одной из нескольких функций:

  • read_table;
  • read_csv.

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

Вот – исходный текстовый документ. Он будет называться как data.csv:

Pandas: как создавать DataFrames

Из них при помощи обоих предложенных методов будет осуществляться create dataframe. Первый подход – это применение функции read_csv. Она разработана специально для упомянутого формата текстовых документов. Поддерживает большое количество функций, но для простых документов достаточно указать только название исходного документа, а также тип используемого в нем разделителя. В рассматриваемом примере ей служит символ запятой.

Pandas: как создавать DataFrames
Pandas: как создавать DataFrames

В этом же случае допускается применение read_table. Она будет работать точно также, как и read_csv.

Стоит обратить внимание на то, что иногда разработчику требуется отдельно задавать подписи для pandas-dataframe-columns. В этом случае предстоит пользоваться дополнительным параметром. Он называется name и имеет такую форму записи:

Pandas: как создавать DataFrames

Если программисту в результирующем фрейме не требуются имена столбцов, параметры задаются как header=None.

Из буфера обмена

Иногда у аналитика или разработчика имеются данные в табличном формате, которые разделены запятыми или иными разделяющими символами. Они скопированы в буфер обмена и могут быть использованы для считывания изучаемой библиотекой.

Еще один способ формирования pandas-pd-dataframe – это копирование информации прямо из буфера обмена устройства. Отдельный документ с исходными данными формировать в этом случае не придется.

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

Чтобы в Pandas create-dataframe из значений, которые разделены запятыми и скопированы в буфер обмена устройства, используется функция read_clipboard. Дополнительно предстоит указать разделяющий символ.

Вот – информация, которую предстоит скопировать в буфер устройства для дальнейшей обработки изучаемым методом:

Pandas: как создавать DataFrames

Теперь остается записать в программном коде следующее:

Pandas: как создавать DataFrames

Если разделитель строк dataframe не выступает в качестве одного или нескольких пробелов, желаемый символ или строка (the strings) должны быть обязательно указаны. Для этого разработчик передает параметр функции. В круглых скобках между кавычками-черточками указывается желаемый символ-разделитель. Если функция вызывается без параметров, по умолчанию в итоговом фрейме разделителем выступает пробел.

HTML-документ или веб-страница

В Pandas DataFrame может быть сформирован еще проще – при помощи веб-страниц и HTML-документов. Для этого предстоит использовать функцию read_html. В ней разработчик указывает исходный HTML-документ или URL, который предстоит считать. Указанная команда будет искать теги, а затем формировать информационный фрейм с каждой из таблиц в исходном документе.

Read_html ищет теги:

  • table;
  • tr (строки);
  • th (заголовки);
  • td (данные).

из них для каждой таблицы будет генерироваться фрейм. Связано это с тем, что рассматриваемая функция всегда будет возвращать список со сгенерированными DataFrames.

Стоит обратить внимание на то, что для корректной реализации рассматриваемого приема требуется подключить библиотеку lxml. Она помогает не в непосредственном pandas-create-dataframe, а в обработке и разборе XML/HTML-документов в Питоне.

Pandas: как создавать DataFrames
Pandas: как создавать DataFrames
Pandas: как создавать DataFrames

Выше – HTML-файл, с которым планируется дальнейшая работа в процессе изучения метода создания информационного фрейма. В нем поддерживаются две разные таблицы. Документ будет называться – data.html.

Представленный файл рекомендуется открыть в браузере, чтобы увидеть, что в нем хранится. В этом примере формируется pandas-dataframe-name с двумя объектами: по одному для каждой исходной таблицы в data.html. Далее соответствующий список должен быть выведен на дисплей:

Pandas: как создавать DataFrames
Pandas: как создавать DataFrames

Чтение при помощи библиотеки lxml может оказаться неудачным. В соответствующем случае будут использоваться html5lib, а также bs4. Для этого они должны быть заранее установлены на устройстве разработчика. Если необходимо выполнить чтение конкретной библиотекой, рекомендуется воспользоваться параметром flavor. В нем указывается lib, необходимая для непосредственного применения.

Из Excel

Рассматриваемый тип информационной структуры может быть охарактеризован как «таблица». Пользователи часто работают с Excel, поэтому the Pandas dataframe может быть сформирована из Excel-таблиц. Допускается работа с совместимыми электронными таблицами. Пример – созданные через пакет LibreOffice.

Для выполнения операции используется функция read_excel, в котором указывается файл, из которого необходимо считать исходные материалы. Формат предложенного далее примера – data.xlsx. Эта таблица была создана через GoogleDrive и сохранена.

Pandas: как создавать DataFrames

Функция read_excel при считывании data for dataframe, будет использовать другую библиотеку. Она напрямую зависит от типа формата исходной таблицы. Для Excel – это openpyxl. Она должна быть установлена предварительно через pip. При работе с форматом Open Document Format, используется библиотека odf.

Когда все готово, можно формировать dataframe columns при помощи такого фрагмента кода:

Pandas: как создавать DataFrames

А вот – результат обработки команды:

Pandas: как создавать DataFrames

Может получиться так, что таблица, необходимая для чтения, расположена в определенной строке и столбце документа. Эта ситуация требует указания того, какие строки должны быть проигнорированы (через skiprows). Также предстоит указать, какие столбцы являются обязательными для чтения при помощи параметра usecols.

Иногда таблица, которую необходимо сформировать в виде фрейма, располагается на первом листе документа. Чтобы указать его, используется параметр sheet_name. Можно прописывать «лист поиска» как цифрой, так и непосредственным названием. Первый такой «элемент» указывается как 0.

Из JSON

Хранение информации в формате JSON является достаточно популярным методом организации данных. Его тоже допустимо использовать, чтобы сформировать pandas-dataframe-name. За операцию отвечает функция read_json. Ей передается имя исходного документа. После обработки «запроса» система создаст новый дата фрейм с желаемым спектром информации.

Вот – исходный текст документа, сохраненного в формате JSON:

Pandas: как создавать DataFrames

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

Pandas: как создавать DataFrames

Результат тут будет точно таким же, как и в предыдущих примерах.

Из SQL-базы

Более сложный пример формирования dataframe-data – из SQL-таблиц. Для этого могут использоваться:

  • read_sql;
  • запрос на создание и соединение с БД.

Для примера рекомендуется рассмотреть ситуацию, при которой поддерживаются две таблицы в БД. Они будут разными: для сотрудников и для отделов. В первом случае будут столбцы:

  • код;
  • имя;
  • возраст;
  • код отдела.

В таблице отдела отображаются столбцы: код отдела, название, местоположение. Задача – создать информационный фрейм, в котором содержатся столбцы обеих таблиц. В качестве параметра объединения служит «код отдела».

Pandas: как создавать DataFrames

После создания БД остается сформировать несколько Pandas Dataframe. Первый вариант – прямой. Он заключается в загрузке фреймов с каждой таблицы. Для этого используется команда read_sql. В ней указываются два параметра: имя считываемой таблицы, а также строка подключения к базе данных:

Pandas: как создавать DataFrames

Если действовать через SQL-запрос, предстоит выполнить следующее:

Pandas: как создавать DataFrames

Read_sql дает возможность задавать запросы для получения нужных данных и их дальнейшего применения. Достаточно указать SQL-команду вместе табличного имени.

Здесь и тут можно увидеть больше наглядных примеров работы с ДатаФреймами в Пандас. А лучше изучить их с нуля помогут дистанционные компьютерные курсы.

Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в Otus! 

Также, возможно, вам будут интересны следующие курсы: