Python часто используется для машинного обучения, а также анализа данных. Для этого к языку программирования подключаются различные библиотеки: NumPy, Matplotlib, TensorFlow и так далее. Каждому, кто планирует заниматься BigData и анализом информации, рекомендуется обратить внимание на Pandas. Это функциональный инструмент для Питона, который поможет работать с данными и обрабатывать их.
Далее предстоит получше изучить библиотеку Pandas, а также один из ее важнейших компонентов – DataFrame. Предложенные ниже сведения ориентированы в большей степени на разработчиков с опытом.
The Pandas – основная библиотека Питона, предназначенная для работы с информацией и ее большими объемами. Активно применяется в аналитике и BigData. The Pandas была создана в 2008 году. С тех пор она стремительно развивается и совершенствуется. Изначально библиотека распространялась компанией AQR Capital, но через код соответствующее «программное обеспечение» получило открытый исходный код.
Сферы применения
Перед изучением Pandas Dataframe, необходимо понять, где вообще применяется рассматриваемая библиотека. Ключевых областей использования несколько:
- Аналитика информации: маркетинг, продуктовый анализ и другое. Рассматриваемый «пакет решений» для Python позволяет анализировать информацию и подготавливать ее. Некоторые процессы за счет встроенных инструментов могут быть автоматизированы.
- BigData и Data Science. При помощи Пандас разработчики и аналитики смогут подготовить, а также организовать первичный анализ BigData для дальнейшего применения в глубоком/машинном обучении.
- Статистика. В библиотеке поддерживаются ключевые статистические методы, которые позволяют оперировать информацией. Примеры – распределение значений по квинтилям, расчет средних параметров.
Большинство разработчиков, если они не углубляются в обозначенные области, могут не изучать 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:
После обработки соответствующего фрагмента на экране появится следующий результат:
The Series будет отображаться как таблица с индексами элементов в первом столбце и с присваиваемыми значениями – во втором.
Panel
Изучая the Pandas (pd) dataframe, не нужно забывать о других структурных единицах библиотеки – без них полноценно пользоваться продуктом Питона не получится. Не самым распространенным, но встречающимся в разработке компонентом является Panel.
The Panel – это второй тип структур данных. Он является более сложным компонентом, чем Series и Pandas (pd) dataframe. Panel представляет собой панель с трехмерной структурой. Она включает в себя три оси для выполнения различных функций:
- Items – ось 0. Каждый его компонент будет соответствовать the Dataframe в нем.
- Major_axis – ось 1. Здесь наблюдается соответствие строкам каждого the Data Frame.
- Minor_axis – ось 2. Соответствует Dataframe-columns.
Выше можно увидеть наглядный синтаксис, при помощи которого разработчик сможет создать Panel в Пандас.
DataFrame – основной компонент
Pandas Dataframe – наиболее распространенный элемент изучаемой библиотеки. Он используется для создания основного количества баз информации. Представляет собой двумерную структуру, которая напоминает массивы. Входные данные в датафрейм оформляются как строки и столбцы.
Размер структуры Pandas Dataframe разрешено менять. Соответствующий компонент служит стандартным способом хранения информации. Он формирует базу по типу таблицы-SQL или любой другой таблицы (a table).
The Data фрейм может быть с жестко закодированными данными. Информация поддерживает импорт в CSV или TSV, а также Excel-документ, SQL-таблицу и не только.
Dataframe Data имеет следующий синтаксис:
Здесь:
- Input_data – ввод. Он может принимать списки, массивы, ряды и иные структурные дата единицы.
- Index value – значения индекса. Они будут передаваться в dataframe.
- Data type или dtype – функция, которая распознает тип используемой информации для dataframe-columns.
- Copy – копирование. Значение по умолчанию для соответствующего параметра – false (ложь, неверно).
Столбцы – это метки данных столбцов. Создавать дата фреймы можно несколькими способами. О них будет рассказано позже. Эта информация пригодится как новичкам, так и более опытным разработчикам.
Импорт информации
Изучая pandas dataframe, разработчику необходимо не только познакомиться с объектом (object) датафрейм, но и освоить принципы применения рассматриваемой библиотеки. Без соответствующих навыков программист не сможет оперировать информацией и правильно использовать ее на практике.
Изучаемый «фреймворк» поддерживает несколько способов импорта (importing) данных. Пример – считывание из словаря (a dictionary), списка или кортежа. Наиболее распространенный вариант – использование csv-документов. Они чаще всего применяются при анализе данных. Для импорта используется команда: pd.read_csv. Для оперирования импортирования the dataframe or series, поддерживаются два параметра:
- Sep. С его помощью разработчик сможет явно указать разделитель, используемый в импортированном документе. По умолчанию соответствующее значение – это символ запятой. Он используется в качестве «стандартного» разделителя в csv-документах. Sep будет особо полезен тогда, когда в исходном файле изначально применяются нестандартные разделяющие символы. Примеры – точки с запятыми или табуляция.
- 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)
Выше – наглядный пример кода, а также результата его обработки. Create a dataframe without data (создание пустого датафрейма) – операция, которая в практических задачах используется не слишком часто. Это элементарный случай. Есть и другие методы сделать (to create) dataframe data.
Добавление столбцов
Основная единица измерения датафрейма – это the column (столбцы). Доступ к ним всегда является более прямой, чем к строкам (rows). При помощи обычной скобочной нотации обращение к столбцам осуществляется раньше, чем к строкам. Это противоречит общей практике.
Добавить новый столбец в the DataFrame можно путем присваивания ему значений, которые должен иметь столбец. Операция производится подобно работе со словарями и скобочными нотациями.:
Выше – пример, где отсутствуют значения. Из-за этого в первой строке указывается None. Фактически это – пустой фрейм.
Еще один способ добавления столбцов (dataframe-columns) является применение функции assign. Она дает возможность добавлять колонки к уже созданным. В исходный датафрейм информация не вставляется. Вместо этого система добавляет новый the Dataframe, который включает не только старые столбцы, но и новые:
Стоит обратить внимание на то, что при назначении уже существующих dataframe-columns происходит перезапись их значений. В представленном примере из-за этого не случится ничего страшного, потому что изначально фрейм пустой.
При помощи словаря
Creates the dataframe через одномерный словарь – более распространенная ситуация. В этом случае компонентами the dict будут выступать списки и структуры Series. Сначала разработчику потребуется создать Series:
Далее потребуется построить аналогичный словарь, но базирующийся на компонентах ndarray:
Можно заметить, что результаты будут одинаковыми. Вместо ndarray допускается использование обычного списка из Питона.
Из массива
Еще один способ формирования the Pandas dataframe – выгрузка из массива. Чтобы лучше понять соответствующий принцип, рекомендуется изучать его на наглядном примере. В качестве массива с информацией будет использоваться data.
Для формирования DataFrame потребуется вызвать конструктор и передать его в качестве параметра список data. Для этого используется DataFrame(data). Соответствующая команда будет возвращать объект Датафрейм, созданный с заданными параметрами. Его можно использовать для дальнейших операций.
Вот – массив, который состоит из трех списков, в каждом из которых по 4 значения. Они образовывают следующую таблицу:
Из него формируется ДатаФрейм. Для этого рекомендуется воспользоваться следующим фрагментом кода:
При выводе результата на экран отобразится следующая ситуация:
Стоит обратить внимание на следующие особенности концепции создания the dataframes:
- Каждая строка будет соответствовать каждой строке в исходном документе с массивом.
- Если нужно, чтобы каждая строка (string) в заданном множестве значений отображалась как столбец в the Pandas Dataframe, потребуется поменять столбцы и строки местами при создании рассматриваемого компонента.
- Для того, чтобы поменять столбцы и строки, используется функция transpose (df = pd.DataFrame(data).transpose().)
- Если необходимо задать собственные имена столбцов (dataframe-name), допустимо добавить новый параметр. Он называется columns и пишется в вызов конструктора. В нем останется перечислить желаемые «названия».
Запомнить все эти правила, еще один метод создания Датафреймов будет полностью понятен. Но рассмотренные приемы не являются исчерпывающими. Существуют иные методы, которые помогут create the dataframe.
Список словарей
Для создания Датафрейма из списка словарей необходимо предоставить список (list) конструктору класса через: DataFrame(list). Соответствующий вызов вернет объект ДатаФрейм, который включает в себя информацию из списка с ключами, которые выступают именами столбцов.
Вот – наглядный пример фрагмента кода с рассматриваемым решением:
И результат обработки:
Основная проблема рассматриваемого подхода к create DataFrame при помощи списка словарей заключается в том, что разработчик должен убедиться в ключах. В каждом предложенном dict они обязательно должны быть согласованными друг с другом, а также корректными.
Целевой дата фрейм получит столько столбцов, сколько в словарях размещается уникальных ключей. Пример – ключ, который связан с именем. В одном словаре он отображается как Name, во втором – name, в третьем – NAME. В конечном итоге разработчик получит три разных колонки (регистр принимается во внимание) для информации об имени. Такая ситуация часто доставляет определенные проблемы для анализа. Множество значений в результирующем фрейме окажется None.
Массив NumPy
Иногда требуется обработать pd-dataframe-columns, которые расположены внутри массива NumPy. Для такого случая программист должен вызвать конструктор через DataFrame(array). Чтобы задать имена столбцов, они должны быть прописаны в отдельном параметре функции – columns.
Каждая строка массива исходных данных будет полностью соответствовать DataFrame. Перед использованием соответствующего приема разработчик должен убедиться в наличии инициализированной библиотеки NumPy. При ее отсутствии – провести предварительную установку, иначе метод работать не будет.
Из CSV-документа
Работа с CSV-файлами при анализе информации и в BigData – явление, которое не удивляет разработчиков. Поэтому достаточно часто приходится формировать фреймы через заранее подготовленные документы.
CSV или Comma Separated Value представляет собой текстовый документ в виде таблицы. Его значения разделены специальными символами. По умолчанию – запятыми. Такие документы часто имеют первую строку, выступающей в виде заголовка с именами имеющихся столбцов.
Чтобы создать при помощи такого приема Pandas-dataframe-columns, можно пользоваться одной из нескольких функций:
В соответствующих командах потребуется указать имя файла, откуда осуществляется импорт данных, а также символ-разделитель.
Вот – исходный текстовый документ. Он будет называться как data.csv:
Из них при помощи обоих предложенных методов будет осуществляться create dataframe. Первый подход – это применение функции read_csv. Она разработана специально для упомянутого формата текстовых документов. Поддерживает большое количество функций, но для простых документов достаточно указать только название исходного документа, а также тип используемого в нем разделителя. В рассматриваемом примере ей служит символ запятой.
В этом же случае допускается применение read_table. Она будет работать точно также, как и read_csv.
Стоит обратить внимание на то, что иногда разработчику требуется отдельно задавать подписи для pandas-dataframe-columns. В этом случае предстоит пользоваться дополнительным параметром. Он называется name и имеет такую форму записи:
Если программисту в результирующем фрейме не требуются имена столбцов, параметры задаются как header=None.
Из буфера обмена
Иногда у аналитика или разработчика имеются данные в табличном формате, которые разделены запятыми или иными разделяющими символами. Они скопированы в буфер обмена и могут быть использованы для считывания изучаемой библиотекой.
Еще один способ формирования pandas-pd-dataframe – это копирование информации прямо из буфера обмена устройства. Отдельный документ с исходными данными формировать в этом случае не придется.
Создание фрейма из буфера позволяет динамически, а также достаточно быстро получать информационные фреймы из материалов различных источников.
Чтобы в Pandas create-dataframe из значений, которые разделены запятыми и скопированы в буфер обмена устройства, используется функция read_clipboard. Дополнительно предстоит указать разделяющий символ.
Вот – информация, которую предстоит скопировать в буфер устройства для дальнейшей обработки изучаемым методом:
Теперь остается записать в программном коде следующее:
Если разделитель строк dataframe не выступает в качестве одного или нескольких пробелов, желаемый символ или строка (the strings) должны быть обязательно указаны. Для этого разработчик передает параметр функции. В круглых скобках между кавычками-черточками указывается желаемый символ-разделитель. Если функция вызывается без параметров, по умолчанию в итоговом фрейме разделителем выступает пробел.
HTML-документ или веб-страница
В Pandas DataFrame может быть сформирован еще проще – при помощи веб-страниц и HTML-документов. Для этого предстоит использовать функцию read_html. В ней разработчик указывает исходный HTML-документ или URL, который предстоит считать. Указанная команда будет искать теги, а затем формировать информационный фрейм с каждой из таблиц в исходном документе.
Read_html ищет теги:
- table;
- tr (строки);
- th (заголовки);
- td (данные).
из них для каждой таблицы будет генерироваться фрейм. Связано это с тем, что рассматриваемая функция всегда будет возвращать список со сгенерированными DataFrames.
Стоит обратить внимание на то, что для корректной реализации рассматриваемого приема требуется подключить библиотеку lxml. Она помогает не в непосредственном pandas-create-dataframe, а в обработке и разборе XML/HTML-документов в Питоне.
Выше – HTML-файл, с которым планируется дальнейшая работа в процессе изучения метода создания информационного фрейма. В нем поддерживаются две разные таблицы. Документ будет называться – data.html.
Представленный файл рекомендуется открыть в браузере, чтобы увидеть, что в нем хранится. В этом примере формируется pandas-dataframe-name с двумя объектами: по одному для каждой исходной таблицы в data.html. Далее соответствующий список должен быть выведен на дисплей:
Чтение при помощи библиотеки lxml может оказаться неудачным. В соответствующем случае будут использоваться html5lib, а также bs4. Для этого они должны быть заранее установлены на устройстве разработчика. Если необходимо выполнить чтение конкретной библиотекой, рекомендуется воспользоваться параметром flavor. В нем указывается lib, необходимая для непосредственного применения.
Из Excel
Рассматриваемый тип информационной структуры может быть охарактеризован как «таблица». Пользователи часто работают с Excel, поэтому the Pandas dataframe может быть сформирована из Excel-таблиц. Допускается работа с совместимыми электронными таблицами. Пример – созданные через пакет LibreOffice.
Для выполнения операции используется функция read_excel, в котором указывается файл, из которого необходимо считать исходные материалы. Формат предложенного далее примера – data.xlsx. Эта таблица была создана через GoogleDrive и сохранена.
Функция read_excel при считывании data for dataframe, будет использовать другую библиотеку. Она напрямую зависит от типа формата исходной таблицы. Для Excel – это openpyxl. Она должна быть установлена предварительно через pip. При работе с форматом Open Document Format, используется библиотека odf.
Когда все готово, можно формировать dataframe columns при помощи такого фрагмента кода:
А вот – результат обработки команды:
Может получиться так, что таблица, необходимая для чтения, расположена в определенной строке и столбце документа. Эта ситуация требует указания того, какие строки должны быть проигнорированы (через skiprows). Также предстоит указать, какие столбцы являются обязательными для чтения при помощи параметра usecols.
Иногда таблица, которую необходимо сформировать в виде фрейма, располагается на первом листе документа. Чтобы указать его, используется параметр sheet_name. Можно прописывать «лист поиска» как цифрой, так и непосредственным названием. Первый такой «элемент» указывается как 0.
Из JSON
Хранение информации в формате JSON является достаточно популярным методом организации данных. Его тоже допустимо использовать, чтобы сформировать pandas-dataframe-name. За операцию отвечает функция read_json. Ей передается имя исходного документа. После обработки «запроса» система создаст новый дата фрейм с желаемым спектром информации.
Вот – исходный текст документа, сохраненного в формате JSON:
Теперь остается воспользоваться упомянутой функцией:
Результат тут будет точно таким же, как и в предыдущих примерах.
Из SQL-базы
Более сложный пример формирования dataframe-data – из SQL-таблиц. Для этого могут использоваться:
- read_sql;
- запрос на создание и соединение с БД.
Для примера рекомендуется рассмотреть ситуацию, при которой поддерживаются две таблицы в БД. Они будут разными: для сотрудников и для отделов. В первом случае будут столбцы:
- код;
- имя;
- возраст;
- код отдела.
В таблице отдела отображаются столбцы: код отдела, название, местоположение. Задача – создать информационный фрейм, в котором содержатся столбцы обеих таблиц. В качестве параметра объединения служит «код отдела».
После создания БД остается сформировать несколько Pandas Dataframe. Первый вариант – прямой. Он заключается в загрузке фреймов с каждой таблицы. Для этого используется команда read_sql. В ней указываются два параметра: имя считываемой таблицы, а также строка подключения к базе данных:
Если действовать через SQL-запрос, предстоит выполнить следующее:
Read_sql дает возможность задавать запросы для получения нужных данных и их дальнейшего применения. Достаточно указать SQL-команду вместе табличного имени.
Здесь и тут можно увидеть больше наглядных примеров работы с ДатаФреймами в Пандас. А лучше изучить их с нуля помогут дистанционные компьютерные курсы.
Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в Otus!
Также, возможно, вам будут интересны следующие курсы:
<!DOCTYPE html>
<html dir="ltr" lang="ru-RU">
<head>
<meta charset="UTF-8" />
<meta http-equiv="x-ua-compatible" content="ie=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="profile" href="http://gmpg.org/xfn/11" />
<title>Pandas: как создавать DataFrames OTUS</title>
<!-- All in One SEO 4.5.2.1 - aioseo.com -->
<meta name="description" content="Python часто используется для машинного обучения, а также анализа данных. Для этого к языку программирования подключаются различные библиотеки: NumPy, Matplotlib, TensorFlow и так далее. Каждому, кто планирует заниматься BigData и анализом информации, рекомендуется обратить внимание на Pandas. Это функциональный инструмент для Питона, который поможет работать с данными и обрабатывать их. Далее предстоит получше изучить библиотеку" />
<meta name="robots" content="max-image-preview:large" />
<link rel="canonical" href="https://otus.ru/journal/pandas-kak-sozdavat-dataframes/" />
<meta name="generator" content="All in One SEO (AIOSEO) 4.5.2.1" />
<script type="application/ld+json" class="aioseo-schema">
{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/otus.ru\/journal\/pandas-kak-sozdavat-dataframes\/#article","name":"Pandas: \u043a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c DataFrames OTUS","headline":"Pandas: \u043a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c DataFrames","author":{"@id":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/#author"},"publisher":{"@id":"https:\/\/otus.ru\/journal\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/otus.ru\/journal\/wp-content\/uploads\/2023\/06\/oj-1080x72051-1.jpg","width":2245,"height":1587},"datePublished":"2023-06-04T18:13:15+00:00","dateModified":"2023-06-04T18:14:37+00:00","inLanguage":"ru-RU","mainEntityOfPage":{"@id":"https:\/\/otus.ru\/journal\/pandas-kak-sozdavat-dataframes\/#webpage"},"isPartOf":{"@id":"https:\/\/otus.ru\/journal\/pandas-kak-sozdavat-dataframes\/#webpage"},"articleSection":"\u041f\u043e\u043b\u0435\u0437\u043d\u043e\u0435, Machine Learning, Pandas, \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0439 \u0430\u043d\u0430\u043b\u0438\u0437"},{"@type":"BreadcrumbList","@id":"https:\/\/otus.ru\/journal\/pandas-kak-sozdavat-dataframes\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/otus.ru\/journal\/#listItem","position":1,"name":"\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430","item":"https:\/\/otus.ru\/journal\/","nextItem":"https:\/\/otus.ru\/journal\/pandas-kak-sozdavat-dataframes\/#listItem"},{"@type":"ListItem","@id":"https:\/\/otus.ru\/journal\/pandas-kak-sozdavat-dataframes\/#listItem","position":2,"name":"Pandas: \u043a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c DataFrames","previousItem":"https:\/\/otus.ru\/journal\/#listItem"}]},{"@type":"Organization","@id":"https:\/\/otus.ru\/journal\/#organization","name":"\u041e\u0442\u0443\u0441 \u043e\u043d\u043b\u0430\u0439\u043d-\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435","url":"https:\/\/otus.ru\/journal\/","sameAs":["https:\/\/www.youtube.com\/channel\/UCetgtvy93o3i3CvyGXKFU3g"],"contactPoint":{"@type":"ContactPoint","telephone":"+74999389202","contactType":"Customer Support"}},{"@type":"Person","@id":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/#author","url":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/","name":"A. Pavlenko","image":{"@type":"ImageObject","@id":"https:\/\/otus.ru\/journal\/pandas-kak-sozdavat-dataframes\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/d4c499a104d7c2522fa41f89e6819499?s=96&d=mm&r=g","width":96,"height":96,"caption":"A. Pavlenko"}},{"@type":"WebPage","@id":"https:\/\/otus.ru\/journal\/pandas-kak-sozdavat-dataframes\/#webpage","url":"https:\/\/otus.ru\/journal\/pandas-kak-sozdavat-dataframes\/","name":"Pandas: \u043a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c DataFrames OTUS","description":"Python \u0447\u0430\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043a \u044f\u0437\u044b\u043a\u0443 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u044e\u0442\u0441\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438: NumPy, Matplotlib, TensorFlow \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435. \u041a\u0430\u0436\u0434\u043e\u043c\u0443, \u043a\u0442\u043e \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u0442 \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f BigData \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u043e\u043c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438, \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 Pandas. \u042d\u0442\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u041f\u0438\u0442\u043e\u043d\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0438 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0438\u0445. \u0414\u0430\u043b\u0435\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u043e\u0438\u0442 \u043f\u043e\u043b\u0443\u0447\u0448\u0435 \u0438\u0437\u0443\u0447\u0438\u0442\u044c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443","inLanguage":"ru-RU","isPartOf":{"@id":"https:\/\/otus.ru\/journal\/#website"},"breadcrumb":{"@id":"https:\/\/otus.ru\/journal\/pandas-kak-sozdavat-dataframes\/#breadcrumblist"},"author":{"@id":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/#author"},"creator":{"@id":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/#author"},"image":{"@type":"ImageObject","url":"https:\/\/otus.ru\/journal\/wp-content\/uploads\/2023\/06\/oj-1080x72051-1.jpg","@id":"https:\/\/otus.ru\/journal\/pandas-kak-sozdavat-dataframes\/#mainImage","width":2245,"height":1587},"primaryImageOfPage":{"@id":"https:\/\/otus.ru\/journal\/pandas-kak-sozdavat-dataframes\/#mainImage"},"datePublished":"2023-06-04T18:13:15+00:00","dateModified":"2023-06-04T18:14:37+00:00"},{"@type":"WebSite","@id":"https:\/\/otus.ru\/journal\/#website","url":"https:\/\/otus.ru\/journal\/","name":"OTUS JOURNAL","description":"Blog about IT","inLanguage":"ru-RU","publisher":{"@id":"https:\/\/otus.ru\/journal\/#organization"}}]}
</script>
<!-- All in One SEO -->
<link rel='dns-prefetch' href='//otus.ru' />
<link rel='dns-prefetch' href='//fonts.googleapis.com' />
<link rel='stylesheet' id='wp-block-library-css' href='https://otus.ru/journal/wp-includes/css/dist/block-library/style.min.css?ver=6.4.7' type='text/css' media='all' />
<style id='classic-theme-styles-inline-css' type='text/css'>
/*! This file is auto-generated */
.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
</style>
<style id='global-styles-inline-css' type='text/css'>
body{--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width: var(--wp--style--global--content-size);margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignwide{max-width: var(--wp--style--global--wide-size);}body .is-layout-flex{display: flex;}body .is-layout-flex{flex-wrap: wrap;align-items: center;}body .is-layout-flex > *{margin: 0;}body .is-layout-grid{display: grid;}body .is-layout-grid > *{margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}
.wp-block-navigation a:where(:not(.wp-element-button)){color: inherit;}
:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}
:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}
.wp-block-pullquote{font-size: 1.5em;line-height: 1.6;}
</style>
<link rel='stylesheet' id='wbcr-comments-plus-url-span-css' href='https://otus.ru/journal/wp-content/plugins/clearfy/components/comments-plus/assets/css/url-span.css?ver=2.2.0' type='text/css' media='all' />
<link rel='stylesheet' id='wpel-style-css' href='https://otus.ru/journal/wp-content/plugins/wp-external-links/public/css/wpel.css?ver=2.59' type='text/css' media='all' />
<link rel='stylesheet' id='ez-toc-css' href='https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/assets/css/screen.min.css?ver=2.0.61' type='text/css' media='all' />
<style id='ez-toc-inline-css' type='text/css'>
div#ez-toc-container .ez-toc-title {font-size: 120%;}div#ez-toc-container .ez-toc-title {font-weight: 500;}div#ez-toc-container ul li {font-size: 95%;}div#ez-toc-container nav ul ul li {font-size: 90%;}
.ez-toc-container-direction {direction: ltr;}.ez-toc-counter ul{counter-reset: item ;}.ez-toc-counter nav ul li a::before {content: counters(item, ".", decimal) ". ";display: inline-block;counter-increment: item;flex-grow: 0;flex-shrink: 0;margin-right: .2em; float: left; }.ez-toc-widget-direction {direction: ltr;}.ez-toc-widget-container ul{counter-reset: item ;}.ez-toc-widget-container nav ul li a::before {content: counters(item, ".", decimal) ". ";display: inline-block;counter-increment: item;flex-grow: 0;flex-shrink: 0;margin-right: .2em; float: left; }
</style>
<link rel='stylesheet' id='contentberg-fonts-css' href='https://fonts.googleapis.com/css?family=Roboto%3A400%2C500%2C700%7CPT+Serif%3A400%2C400i%2C600%7CIBM+Plex+Serif%3A500' type='text/css' media='all' />
<link rel='stylesheet' id='contentberg-core-css' href='https://otus.ru/journal/wp-content/themes/contentberg/style.css?ver=1.8.3' type='text/css' media='all' />
<link rel='stylesheet' id='contentberg-lightbox-css' href='https://otus.ru/journal/wp-content/themes/contentberg/css/lightbox.css?ver=1.8.3' type='text/css' media='all' />
<link rel='stylesheet' id='font-awesome-css' href='https://otus.ru/journal/wp-content/themes/contentberg/css/fontawesome/css/font-awesome.min.css?ver=1.8.3' type='text/css' media='all' />
<script type="text/javascript" id="breeze-prefetch-js-extra">
/* <![CDATA[ */
var breeze_prefetch = {"local_url":"https:\/\/otus.ru\/journal","ignore_remote_prefetch":"1","ignore_list":["\/wp-admin\/"]};
/* ]]> */
</script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/breeze/assets/js/js-front-end/breeze-prefetch-links.min.js" id="breeze-prefetch-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/jquery/jquery.min.js" id="jquery-core-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/jquery/jquery-migrate.min.js" id="jquery-migrate-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/lazysizes.js" id="lazysizes-js"></script>
<link rel="https://api.w.org/" href="https://otus.ru/journal/wp-json/" /><link rel="alternate" type="application/json" href="https://otus.ru/journal/wp-json/wp/v2/posts/6490" /><link rel='shortlink' href='https://otus.ru/journal/?p=6490' />
<link rel="alternate" type="application/json+oembed" href="https://otus.ru/journal/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fotus.ru%2Fjournal%2Fpandas-kak-sozdavat-dataframes%2F" />
<link rel="alternate" type="text/xml+oembed" href="https://otus.ru/journal/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fotus.ru%2Fjournal%2Fpandas-kak-sozdavat-dataframes%2F&format=xml" />
<script>var Sphere_Plugin = {"ajaxurl":"https:\/\/otus.ru\/journal\/wp-admin\/admin-ajax.php"};</script><link rel="icon" href="https://otus.ru/journal/wp-content/uploads/2020/11/cropped-OTUS_logo_OTUS-COMP-LOGO-WHITE-1-32x32.png" sizes="32x32" />
<link rel="icon" href="https://otus.ru/journal/wp-content/uploads/2020/11/cropped-OTUS_logo_OTUS-COMP-LOGO-WHITE-1-192x192.png" sizes="192x192" />
<link rel="apple-touch-icon" href="https://otus.ru/journal/wp-content/uploads/2020/11/cropped-OTUS_logo_OTUS-COMP-LOGO-WHITE-1-180x180.png" />
<meta name="msapplication-TileImage" content="https://otus.ru/journal/wp-content/uploads/2020/11/cropped-OTUS_logo_OTUS-COMP-LOGO-WHITE-1-270x270.png" />
<style type="text/css" id="wp-custom-css">
#menu-item-10406 .wpel-icon {
display: none;
}
#menu-item-10407 .wpel-icon {
display: none;
}
.otus-login-site a .wpel-icon {
display: none;
}
.menu-menju-navykov-container a .wpel-icon {
display: none;
}
.otus-login-site a
{
background: #ffd709;
border-radius: 12px;
color: #0f0f10;
font-size: 14px;
font-weight: 700;
line-height: 20px;
display: block;
text-align: center;
padding: 8px 25px;
}
.main-footer.dark {
background: linear-gradient(90deg, #a64fc5, #4f54e6);
border-color: transparent;
}
.main-footer.bold .copyright {
color: #fff;
}
.main-footer.bold .to-top i {
color: #fff;
}
.main-footer.bold .back-to-top {
color: #fff;
}
.nav__scroll {
overflow-x: auto;
-webkit-overflow-scrolling: touch;
}
.scrollable-menu .menu {
display: flex;
}
.nav__scroll
{
background: linear-gradient(90deg, #a64fc5, #4f54e6);
}
.scrollable-menu .menu .menu-item {
flex: 0 0 auto;
padding: 15px 15px;
}
.scrollable-menu .menu .menu-item a {
color: #fff;
}
.nav__scroll::-webkit-scrollbar{background-color:#fff;height:5px;}
.nav__scroll::-webkit-scrollbar-thumb{background-color:#dcdcdc;}
.nav__scroll::-webkit-scrollbar-track{-webkit-border-radius:0;border-radius:0;background-color:#fff;}/
body {
min-width: 320px;
}
.banner-click img {
margin: 0 auto;
display: block;
}
.banner-click {
cursor: pointer;
}
.banner-footer-area {
margin-bottom: 20px;
}
.banner-left-area {
margin-top: 40px;
} </style>
<!--Start VDZ Yandex Metrika Plugin-->
<!-- Yandex.Metrika counter --><script type="text/javascript" >(function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})(window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");ym(34531570, "init", {clickmap:true, trackLinks:true, accurateTrackBounce:true, webvisor:true, trackHash:true, ecommerce:"dataLayer"});</script>
<noscript><div><img src="https://mc.yandex.ru/watch/34531570" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
<!-- /Yandex.Metrika counter --><!--START ADD EVENTS FROM CF7--><script type='text/javascript'>document.addEventListener( 'wpcf7submit', function( event ) {
//event.detail.contactFormId;
if(ym){
//console.log(event.detail);
ym(34531570, 'reachGoal', 'VDZ_SEND_CONTACT_FORM_7');
ym(34531570, 'params', {
page_url: window.location.href,
status: event.detail.status,
locale: event.detail.contactFormLocale,
form_id: event.detail.contactFormId,
});
}
}, false );
</script><!--END ADD EVENTS FROM CF7-->
<!--End VDZ Yandex Metrika Plugin-->
</head>
<body class="post-template-default single single-post postid-6490 single-format-standard right-sidebar lazy-normal has-lb">
<div class="main-wrap">
<header id="main-head" class="main-head head-nav-below has-search-modal simple simple-boxed">
<div class="inner inner-head" data-sticky-bar="0">
<div class="wrap cf wrap-head">
<div class="left-contain">
<span class="mobile-nav"><i class="fa fa-bars"></i></span>
<div class="title">
<a href="https://otus.ru/journal/" title="OTUS JOURNAL" rel="home" data-wpel-link="internal">
<span class="text-logo"><img src="/journal/wp-content/themes/contentberg/img/logo_site.svg" alt="OTUS JOURNAL"></span>
</a>
</div>
</div>
<div class="navigation-wrap inline">
<nav class="navigation inline simple light" data-sticky-bar="0">
<div class="menu-rubriki-container"><ul id="menu-rubriki" class="menu"><li id="menu-item-109" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-cat-1 menu-item-109"><a href="https://otus.ru/journal/category/pro-it/" data-wpel-link="internal"><span>Про IT</span></a></li>
<li id="menu-item-113" class="menu-item menu-item-type-taxonomy menu-item-object-category current-post-ancestor current-menu-parent current-post-parent menu-cat-4 menu-item-113"><a href="https://otus.ru/journal/category/polza/" data-wpel-link="internal"><span>Полезное</span></a></li>
<li id="menu-item-114" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-cat-3 menu-item-114"><a href="https://otus.ru/journal/category/lifestyle/" data-wpel-link="internal"><span>Лайфстайл</span></a></li>
<li id="menu-item-10406" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10406"><a href="https://otus.ru/catalog/courses" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right"><span>Обучение</span><span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10407" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10407"><a href="https://otus.ru/about" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right"><span>Информация</span><span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
</ul></div> </nav>
</div>
<div class="actions">
<div class="otus-login-site">
<a href="https://otus.ru/login/" target="_blank" data-wpel-link="external" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Войти<span class="wpel-icon wpel-image wpel-icon-6"></span></a>
</div>
<a href="#" title="Search" class="search-link"><i class="fa fa-search"></i></a>
</div>
</div>
</div>
</header> <!-- .main-head -->
<div class="nav nav_disable nav_colored nav_transparent course-categories__nav nav__scroll ">
<div class="container wrap">
<div class="links inline simple light scrollable-menu">
<div class="menu-menju-navykov-container"><ul id="menu-menju-navykov" class="menu"><li id="menu-item-10413" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10413"><a href="https://otus.ru/categories/programming/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Программирование<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10414" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10414"><a href="https://otus.ru/categories/architecture/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Архитектура<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10415" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10415"><a href="https://otus.ru/categories/operations/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Инфраструктура<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10416" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10416"><a href="https://otus.ru/categories/information-security-courses/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Безопасность<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10417" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10417"><a href="https://otus.ru/categories/data-science/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Data Science<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10418" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10418"><a href="https://otus.ru/categories/gamedev/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">GameDev<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10419" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10419"><a href="https://otus.ru/categories/marketing-business/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Управление<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10420" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10420"><a href="https://otus.ru/categories/analytics/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Аналитика и анализ<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10421" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10421"><a href="https://otus.ru/categories/testing/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Тестирование<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
</ul></div> </div>
</div>
</div>
<div class="main wrap">
<div class="ts-row cf">
<div class="col-8 main-content cf">
<article id="post-6490" class="the-post post-6490 post type-post status-publish format-standard has-post-thumbnail category-polza tag-machine-learning tag-pandas tag-sistemnyj-analiz">
<header class="post-header the-post-header cf">
<div class="post-meta the-post-meta">
<span class="post-cat">
<a href="https://otus.ru/journal/category/polza/" class="category" data-wpel-link="internal">Полезное</a>
</span>
<h1 class="post-title">
Pandas: как создавать DataFrames
</h1>
<a href="https://otus.ru/journal/pandas-kak-sozdavat-dataframes/" class="date-link" data-wpel-link="internal"><time class="post-date">4 июня, 2023</time></a>
</div>
<div class="featured">
<a href="https://otus.ru/journal/wp-content/uploads/2023/06/oj-1080x72051-1.jpg" class="image-link" data-wpel-link="internal"><img width="770" height="515" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20770%20515%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="attachment-contentberg-main size-contentberg-main lazyload wp-post-image" alt="Pandas: как создавать DataFrames" title="Pandas: как создавать DataFrames" decoding="async" fetchpriority="high" data-srcset="https://otus.ru/journal/wp-content/uploads/2023/06/oj-1080x72051-1-770x515.jpg 770w, https://otus.ru/journal/wp-content/uploads/2023/06/oj-1080x72051-1-270x180.jpg 270w" data-src="https://otus.ru/journal/wp-content/uploads/2023/06/oj-1080x72051-1-770x515.jpg" data-sizes="(max-width: 770px) 100vw, 770px" /> </a>
</div>
</header><!-- .post-header -->
<div class="post-content description cf entry-content content-normal">
<div id="ez-toc-container" class="ez-toc-v2_0_61 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction">
<div class="ez-toc-title-container">
<p class="ez-toc-title " >Содержание</p>
<span class="ez-toc-title-toggle"><a href="#" class="ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle" aria-label="Toggle Table of Content"><span class="ez-toc-js-icon-con"><span class=""><span class="eztoc-hide" style="display:none;">Toggle</span><span class="ez-toc-icon-toggle-span"><svg style="fill: #999;color:#999" xmlns="http://www.w3.org/2000/svg" class="list-377408" width="20px" height="20px" viewBox="0 0 24 24" fill="none"><path d="M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z" fill="currentColor"></path></svg><svg style="fill: #999;color:#999" class="arrow-unsorted-368013" xmlns="http://www.w3.org/2000/svg" width="10px" height="10px" viewBox="0 0 24 24" version="1.2" baseProfile="tiny"><path d="M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z"/></svg></span></span></span></a></span></div>
<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-1" href="#Pandas_%E2%80%93_%D1%8D%D1%82%D0%BE%E2%80%A6" title="Pandas – это…">Pandas – это…</a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-2" href="#%D0%A1%D1%84%D0%B5%D1%80%D1%8B_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F" title="Сферы применения">Сферы применения</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-3" href="#%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0" title="Установка">Установка</a></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-4" href="#%D0%A1%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85" title="Структуры данных">Структуры данных</a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-5" href="#Series" title="Series">Series</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-6" href="#Panel" title="Panel">Panel</a></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-7" href="#DataFrame_%E2%80%93_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%82" title="DataFrame – основной компонент">DataFrame – основной компонент</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-8" href="#%D0%98%D0%BC%D0%BF%D0%BE%D1%80%D1%82_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B8" title="Импорт информации">Импорт информации</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-9" href="#%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B_%D0%B4%D0%BB%D1%8F_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B3%D0%BE_%D0%B0%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0" title="Методы для статистического анализа">Методы для статистического анализа</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-10" href="#%D0%9A%D0%B0%D0%BA_%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D1%82%D1%8C_DataFrame_%E2%80%93_%D0%BE%D0%B1%D0%B7%D0%BE%D1%80_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%BE%D0%B2" title="Как создать DataFrame – обзор методов">Как создать DataFrame – обзор методов</a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-11" href="#%D0%9F%D1%83%D1%81%D1%82%D0%BE%D0%B9_%D1%84%D1%80%D0%B5%D0%B9%D0%BC" title="Пустой фрейм">Пустой фрейм</a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class="ez-toc-link ez-toc-heading-12" href="#%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%BE%D0%BB%D0%B1%D1%86%D0%BE%D0%B2" title="Добавление столбцов">Добавление столбцов</a></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-13" href="#%D0%9F%D1%80%D0%B8_%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D0%B8_%D1%81%D0%BB%D0%BE%D0%B2%D0%B0%D1%80%D1%8F" title="При помощи словаря">При помощи словаря</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-14" href="#%D0%98%D0%B7_%D0%BC%D0%B0%D1%81%D1%81%D0%B8%D0%B2%D0%B0" title="Из массива">Из массива</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-15" href="#%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D1%81%D0%BB%D0%BE%D0%B2%D0%B0%D1%80%D0%B5%D0%B9" title="Список словарей">Список словарей</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-16" href="#%D0%9C%D0%B0%D1%81%D1%81%D0%B8%D0%B2_NumPy" title="Массив NumPy">Массив NumPy</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-17" href="#%D0%98%D0%B7_CSV-%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0" title="Из CSV-документа">Из CSV-документа</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-18" href="#%D0%98%D0%B7_%D0%B1%D1%83%D1%84%D0%B5%D1%80%D0%B0_%D0%BE%D0%B1%D0%BC%D0%B5%D0%BD%D0%B0" title="Из буфера обмена">Из буфера обмена</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-19" href="#HTML-%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82_%D0%B8%D0%BB%D0%B8_%D0%B2%D0%B5%D0%B1-%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0" title="HTML-документ или веб-страница">HTML-документ или веб-страница</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-20" href="#%D0%98%D0%B7_Excel" title="Из Excel">Из Excel</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-21" href="#%D0%98%D0%B7_JSON" title="Из JSON">Из JSON</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-22" href="#%D0%98%D0%B7_SQL-%D0%B1%D0%B0%D0%B7%D1%8B" title="Из SQL-базы">Из SQL-базы</a></li></ul></li></ul></nav></div>
<p>Python часто используется для машинного обучения, а также анализа данных. Для этого к языку программирования подключаются различные библиотеки: NumPy, Matplotlib, TensorFlow и так далее. Каждому, кто планирует заниматься BigData и анализом информации, рекомендуется обратить внимание на Pandas. Это функциональный инструмент для Питона, который поможет работать с данными и обрабатывать их.</p>
<p>Далее предстоит получше изучить библиотеку Pandas, а также один из ее важнейших компонентов – DataFrame. Предложенные ниже сведения ориентированы в большей степени на разработчиков с опытом.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="Pandas_%E2%80%93_%D1%8D%D1%82%D0%BE%E2%80%A6"></span>Pandas – это…<span class="ez-toc-section-end"></span></h2>
<p>The Pandas – основная библиотека Питона, предназначенная для работы с информацией и ее большими объемами. Активно применяется в аналитике и BigData. The Pandas была создана в 2008 году. С тех пор она стремительно развивается и совершенствуется. Изначально библиотека распространялась компанией AQR Capital, но через код соответствующее «программное обеспечение» получило открытый исходный код.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%A1%D1%84%D0%B5%D1%80%D1%8B_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F"></span>Сферы применения<span class="ez-toc-section-end"></span></h3>
<p>Перед изучением Pandas Dataframe, необходимо понять, где вообще применяется рассматриваемая библиотека. Ключевых областей использования несколько:</p>
<ol>
<li>Аналитика информации: маркетинг, продуктовый анализ и другое. Рассматриваемый «пакет решений» для Python позволяет анализировать информацию и подготавливать ее. Некоторые процессы за счет встроенных инструментов могут быть автоматизированы.</li>
<li>BigData и Data Science. При помощи Пандас разработчики и аналитики смогут подготовить, а также организовать первичный анализ BigData для дальнейшего применения в глубоком/машинном обучении.</li>
<li>Статистика. В библиотеке поддерживаются ключевые статистические методы, которые позволяют оперировать информацией. Примеры – распределение значений по квинтилям, расчет средних параметров.</li>
</ol>
<p>Большинство разработчиков, если они не углубляются в обозначенные области, могут не изучать the Python and the DataFrame Pandas. Остальным соответствующая библиотека покажется полезной, особенно если знать, как ей управлять.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0"></span>Установка<span class="ez-toc-section-end"></span></h3>
<p>Перед изучением структур информации в изучаемой библиотеке, а также способов создания for dataframe in Python, необходимо сначала установить рассматриваемый «фреймворк» на устройство. Если разработчик пользуется the Jupyter Notebook и Colab, ничего дополнительно ставить не придется. Пандас является стандартной библиотекой. Она доступна сразу после запуска Colab или Jupyter Notebook. Все, что останется разработчику – это импортировать библиотеку в имеющийся исходный код будущей программы:</p>
<p><code>import pandas as pd </code></p>
<p>PD – сокращение, которое является общепринятым у разработчиков на Питоне. Оно используется для обозначения библиотеки Пандас. Вместе с таким обозначением не придется каждый раз писать длинное «pandas» в исходном коде.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%A1%D1%82%D1%80%D1%83%D0%BA%D1%82%D1%83%D1%80%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85"></span>Структуры данных<span class="ez-toc-section-end"></span></h2>
<p>The Pandas Dataframe – это одна из самых значимых структурных единиц библиотеки. Для грамотного управления и создания соответствующего объекта, каждый разработчик должен понимать структуру информации и Пандас.</p>
<p>Всего «фреймворк» поддерживает три вида структур данных:</p>
<ul>
<li>series – одномерный массив неизменного размера;</li>
<li>the data frame – двумерная табличная структура с изменяемыми размерами и неоднородно типизированными столбцами;</li>
<li>panel – трехмерный массив, поддерживающий изменение размерности.</li>
</ul>
<p>Далее каждая представленная единица будет рассмотрена более подробно. Особое внимание будет уделено the data frame (датафрейм) и принципам его создания.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="Series"></span>Series<span class="ez-toc-section-end"></span></h3>
<p>Series (или «серии») – объект рассматриваемом библиотеки, который создан для представления одномерных структурных единиц. Они напоминают массивы, но имеют дополнительные возможности.</p>
<p>Структура a Series отличается of the DataFrame и является более простой. Включает в себя два массива:</p>
<ul>
<li>основной – тот, что содержит информацию (любого типа NumPy);</li>
<li>дополнительный (the index) – включает в себя метки.</li>
</ul>
<p>Проще всего the Series может быть представлен как столбец таблицы, включающий в себя некоторую последовательность значений. Каждый компонент имеет индекс – номер соответствующей строки.</p>
<p>Вот так создается простой Series:</p>
<figure class="wp-block-image size-full"><img decoding="async" width="680" height="168" src="https://otus.ru/journal/wp-content/uploads/2023/06/image-3.png" alt="Pandas: как создавать DataFrames" class="wp-image-6493" srcset="https://otus.ru/journal/wp-content/uploads/2023/06/image-3.png 680w, https://otus.ru/journal/wp-content/uploads/2023/06/image-3-300x74.png 300w, https://otus.ru/journal/wp-content/uploads/2023/06/image-3-150x37.png 150w" sizes="(max-width: 680px) 100vw, 680px" /></figure>
<p>После обработки соответствующего фрагмента на экране появится следующий результат:</p>
<figure class="wp-block-image size-full"><img decoding="async" width="307" height="212" src="https://otus.ru/journal/wp-content/uploads/2023/06/image-2.png" alt="Pandas: как создавать DataFrames" class="wp-image-6492" srcset="https://otus.ru/journal/wp-content/uploads/2023/06/image-2.png 307w, https://otus.ru/journal/wp-content/uploads/2023/06/image-2-300x207.png 300w, https://otus.ru/journal/wp-content/uploads/2023/06/image-2-150x104.png 150w" sizes="(max-width: 307px) 100vw, 307px" /></figure>
<p>The Series будет отображаться как таблица с индексами элементов в первом столбце и с присваиваемыми значениями – во втором.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="Panel"></span>Panel<span class="ez-toc-section-end"></span></h3>
<p>Изучая the Pandas (pd) dataframe, не нужно забывать о других структурных единицах библиотеки – без них полноценно пользоваться продуктом Питона не получится. Не самым распространенным, но встречающимся в разработке компонентом является Panel.</p>
<p>The Panel – это второй тип структур данных. Он является более сложным компонентом, чем Series и Pandas (pd) dataframe. Panel представляет собой панель с трехмерной структурой. Она включает в себя три оси для выполнения различных функций:</p>
<ol>
<li>Items – ось 0. Каждый его компонент будет соответствовать the Dataframe в нем.</li>
<li>Major_axis – ось 1. Здесь наблюдается соответствие строкам каждого the Data Frame.</li>
<li>Minor_axis – ось 2. Соответствует Dataframe-columns.</li>
</ol>
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="458" height="20" src="https://otus.ru/journal/wp-content/uploads/2023/06/image.png" alt="Pandas: как создавать DataFrames" class="wp-image-6495" srcset="https://otus.ru/journal/wp-content/uploads/2023/06/image.png 458w, https://otus.ru/journal/wp-content/uploads/2023/06/image-300x13.png 300w, https://otus.ru/journal/wp-content/uploads/2023/06/image-150x7.png 150w" sizes="(max-width: 458px) 100vw, 458px" /></figure>
<p>Выше можно увидеть наглядный синтаксис, при помощи которого разработчик сможет создать Panel в Пандас.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="DataFrame_%E2%80%93_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%BE%D0%B9_%D0%BA%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%82"></span>DataFrame – основной компонент<span class="ez-toc-section-end"></span></h2>
<p>Pandas Dataframe – наиболее распространенный элемент изучаемой библиотеки. Он используется для создания основного количества баз информации. Представляет собой двумерную структуру, которая напоминает массивы. Входные данные в датафрейм оформляются как строки и столбцы.</p>
<p>Размер структуры Pandas Dataframe разрешено менять. Соответствующий компонент служит стандартным способом хранения информации. Он формирует базу по типу таблицы-SQL или любой другой таблицы (a table).</p>
<p>The Data фрейм может быть с жестко закодированными данными. Информация поддерживает импорт в CSV или TSV, а также Excel-документ, SQL-таблицу и не только.</p>
<p>Dataframe Data имеет следующий синтаксис:</p>
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="423" height="24" src="https://otus.ru/journal/wp-content/uploads/2023/06/image-1.png" alt="Pandas: как создавать DataFrames" class="wp-image-6491" srcset="https://otus.ru/journal/wp-content/uploads/2023/06/image-1.png 423w, https://otus.ru/journal/wp-content/uploads/2023/06/image-1-300x17.png 300w, https://otus.ru/journal/wp-content/uploads/2023/06/image-1-150x9.png 150w" sizes="(max-width: 423px) 100vw, 423px" /></figure>
<p>Здесь:</p>
<ol>
<li>Input_data – ввод. Он может принимать списки, массивы, ряды и иные структурные дата единицы.</li>
<li>Index value – значения индекса. Они будут передаваться в dataframe.</li>
<li>Data type или dtype – функция, которая распознает тип используемой информации для dataframe-columns.</li>
<li>Copy – копирование. Значение по умолчанию для соответствующего параметра – false (ложь, неверно).</li>
</ol>
<p>Столбцы – это метки данных столбцов. Создавать дата фреймы можно несколькими способами. О них будет рассказано позже. Эта информация пригодится как новичкам, так и более опытным разработчикам.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%98%D0%BC%D0%BF%D0%BE%D1%80%D1%82_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B8"></span>Импорт информации<span class="ez-toc-section-end"></span></h2>
<p>Изучая pandas dataframe, разработчику необходимо не только познакомиться с объектом (object) датафрейм, но и освоить принципы применения рассматриваемой библиотеки. Без соответствующих навыков программист не сможет оперировать информацией и правильно использовать ее на практике.</p>
<p>Изучаемый «фреймворк» поддерживает несколько способов импорта (importing) данных. Пример – считывание из словаря (a dictionary), списка или кортежа. Наиболее распространенный вариант – использование csv-документов. Они чаще всего применяются при анализе данных. Для импорта используется команда: pd.read_csv. Для оперирования импортирования the dataframe or series, поддерживаются два параметра:</p>
<ol>
<li>Sep. С его помощью разработчик сможет явно указать разделитель, используемый в импортированном документе. По умолчанию соответствующее значение – это символ запятой. Он используется в качестве «стандартного» разделителя в csv-документах. Sep будет особо полезен тогда, когда в исходном файле изначально применяются нестандартные разделяющие символы. Примеры – точки с запятыми или табуляция.</li>
<li>Dtypes. Этот параметр дает возможность явно указать тип данный columns in csv-документ. Параметр поможет в ситуациях, когда в исходном файле автоматическое определение задействованного формата неверное. Пример – дата часто импортируется в качестве строковых переменных, несмотря на наличие отдельного типа для подобных сведений.</li>
</ol>
<p>Стоит обратить внимание на то, что при работе в Google Colab или Jupyter Notebook для вывода Dataframe data или Series на дисплей устройства не нужно использовать команду print. Пандас умеет отображать сведения без нее. При формировании a function print(df), табличная верстка будет утрачена.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B_%D0%B4%D0%BB%D1%8F_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B3%D0%BE_%D0%B0%D0%BD%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0"></span>Методы для статистического анализа<span class="ez-toc-section-end"></span></h2>
<p>A dataframe from Pandas (pd) часто используется для того, чтобы анализировать различные массивы данных. Для нормализации работы с библиотекой разработчикам приходится применять встроенные методы. Они дают возможность быстро и качественно выполнять аналитические операции.</p>
<p>В Pandas очень много разнообразных методов для анализа data (дата). Далее представлены наиболее распространенные из них:</p>
<figure class="wp-block-table"><table><tbody><tr><td>Что за метод (название)</td><td>Описание</td></tr><tr><td>Count</td><td>Подсчет всех непустых наблюдений. На выходе система передаст количество соответствующих компонентов.</td></tr><tr><td>Mean</td><td>Возврат среднего значения всех элементов</td></tr><tr><td>Sum</td><td>Сумма всех компонентов данных</td></tr><tr><td>Median</td><td>Получение медианного параметра</td></tr><tr><td>Mode</td><td>Отвечает за возврат режа всех информационных компонентов</td></tr><tr><td>Std</td><td>Стандартное отклонение</td></tr><tr><td>Min</td><td>Минимальный компонент среди всех входных информационных единиц</td></tr><tr><td>Max</td><td>Максимальный элемент среди всех входных</td></tr><tr><td>Prod</td><td>Произведение имеющихся значений данных</td></tr><tr><td>Abs</td><td>Абсолютное значение</td></tr><tr><td>Cumprod</td><td>Совокупное произведение значений</td></tr><tr><td>Cumsum</td><td>Кумулятивная сумма</td></tr><tr><td>Describe</td><td>Отображение статистической сводки всех записей за один снимок (сумма, количество, минимумы и максимумы, средние значения и так далее).</td></tr></tbody></table></figure>
<p>Таблица, представленная выше, поможет быстрее анализировать in the dataframe data, а также управлять соответствующими сведениями. Это не все методы, которые используются библиотекой, но они встречаются в разработке и аналитике чаще остальных.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9A%D0%B0%D0%BA_%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D1%82%D1%8C_DataFrame_%E2%80%93_%D0%BE%D0%B1%D0%B7%D0%BE%D1%80_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%BE%D0%B2"></span>Как создать DataFrame – обзор методов<span class="ez-toc-section-end"></span></h2>
<p>Структура the dataframe of PD – это rows and columns (строки и столбцы). Лучше всего представлять соответствующий компонент в виде «стандартной» таблицы, которая заполнена различными материалами. Существуют различные способы создания (creating) дата фреймов. Они могут быть сформированы на базе:</p>
<ul>
<li>других дата frames;</li>
<li>структурные единиц типа Series;</li>
<li>структурированных ndarray;</li>
<li>двумерных ndarray;</li>
<li>словарей, в качестве элементов которого выступают списки, одномерные массивы (array), другие словари и Series.</li>
</ul>
<p>Далее предстоит познакомиться с (with the) различными методами формирования Pandas a Dataframe-columns и the rows. Предложенные ниже концепции являются универсальными. Они помогут разработчикам быстро ориентироваться в оптимальном решении для конкретного анализа и приложения.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9F%D1%83%D1%81%D1%82%D0%BE%D0%B9_%D1%84%D1%80%D0%B5%D0%B9%D0%BC"></span>Пустой фрейм<span class="ez-toc-section-end"></span></h3>
<p>Программист может создать (creation) пустой frame. Это «стандартный» случай, для которого не потребуется никаких дополнительных знаний. Для формирования пустого информационного фрейма достаточно воспользоваться вызовом стандартного конструктора:</p>
<p># Импортирование библиотеки </p>
<p><code>import pandas as pd </code></p>
<p><code># Вызов конструктора </code></p>
<p><code>df = pd.DataFrame() </code></p>
<p><code>print(df) </code></p>
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="231" height="67" src="https://otus.ru/journal/wp-content/uploads/2023/06/image-4.png" alt="Pandas: как создавать DataFrames" class="wp-image-6494" srcset="https://otus.ru/journal/wp-content/uploads/2023/06/image-4.png 231w, https://otus.ru/journal/wp-content/uploads/2023/06/image-4-150x44.png 150w" sizes="(max-width: 231px) 100vw, 231px" /></figure>
<p>Выше – наглядный пример кода, а также результата его обработки. Create a dataframe without data (создание пустого датафрейма) – операция, которая в практических задачах используется не слишком часто. Это элементарный случай. Есть и другие методы сделать (to create) dataframe data.</p>
<h4 class="wp-block-heading"><span class="ez-toc-section" id="%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D1%82%D0%BE%D0%BB%D0%B1%D1%86%D0%BE%D0%B2"></span><em>Добавление столбцов</em><span class="ez-toc-section-end"></span></h4>
<p>Основная единица измерения датафрейма – это the column (столбцы). Доступ к ним всегда является более прямой, чем к строкам (rows). При помощи обычной скобочной нотации обращение к столбцам осуществляется раньше, чем к строкам. Это противоречит общей практике.</p>
<p>Добавить новый столбец в the DataFrame можно путем присваивания ему значений, которые должен иметь столбец. Операция производится подобно работе со словарями и скобочными нотациями.:</p>
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="204" height="87" src="https://otus.ru/journal/wp-content/uploads/2023/06/image-13.png" alt="Pandas: как создавать DataFrames" class="wp-image-6504" srcset="https://otus.ru/journal/wp-content/uploads/2023/06/image-13.png 204w, https://otus.ru/journal/wp-content/uploads/2023/06/image-13-150x64.png 150w" sizes="(max-width: 204px) 100vw, 204px" /></figure>
<p>Выше – пример, где отсутствуют значения. Из-за этого в первой строке указывается None. Фактически это – пустой фрейм.</p>
<p>Еще один способ добавления столбцов (dataframe-columns) является применение функции assign. Она дает возможность добавлять колонки к уже созданным. В исходный датафрейм информация не вставляется. Вместо этого система добавляет новый the Dataframe, который включает не только старые столбцы, но и новые:</p>
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="217" height="106" src="https://otus.ru/journal/wp-content/uploads/2023/06/image-7.png" alt="Pandas: как создавать DataFrames" class="wp-image-6498" srcset="https://otus.ru/journal/wp-content/uploads/2023/06/image-7.png 217w, https://otus.ru/journal/wp-content/uploads/2023/06/image-7-150x73.png 150w" sizes="(max-width: 217px) 100vw, 217px" /></figure>
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="204" height="107" src="https://otus.ru/journal/wp-content/uploads/2023/06/image-6.png" alt="Pandas: как создавать DataFrames" class="wp-image-6497" srcset="https://otus.ru/journal/wp-content/uploads/2023/06/image-6.png 204w, https://otus.ru/journal/wp-content/uploads/2023/06/image-6-150x79.png 150w" sizes="(max-width: 204px) 100vw, 204px" /></figure>
<p>Стоит обратить внимание на то, что при назначении уже существующих dataframe-columns происходит перезапись их значений. В представленном примере из-за этого не случится ничего страшного, потому что изначально фрейм пустой.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9F%D1%80%D0%B8_%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D0%B8_%D1%81%D0%BB%D0%BE%D0%B2%D0%B0%D1%80%D1%8F"></span>При помощи словаря<span class="ez-toc-section-end"></span></h3>
<p>Creates the dataframe через одномерный словарь – более распространенная ситуация. В этом случае компонентами the dict будут выступать списки и структуры Series. Сначала разработчику потребуется создать Series:</p>
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="508" height="281" src="https://otus.ru/journal/wp-content/uploads/2023/06/image-8.png" alt="Pandas: как создавать DataFrames" class="wp-image-6499" srcset="https://otus.ru/journal/wp-content/uploads/2023/06/image-8.png 508w, https://otus.ru/journal/wp-content/uploads/2023/06/image-8-300x166.png 300w, https://otus.ru/journal/wp-content/uploads/2023/06/image-8-150x83.png 150w" sizes="(max-width: 508px) 100vw, 508px" /></figure>
<p>Далее потребуется построить аналогичный словарь, но базирующийся на компонентах ndarray:</p>
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="481" height="256" src="https://otus.ru/journal/wp-content/uploads/2023/06/image-16.png" alt="Pandas: как создавать DataFrames" class="wp-image-6507" srcset="https://otus.ru/journal/wp-content/uploads/2023/06/image-16.png 481w, https://otus.ru/journal/wp-content/uploads/2023/06/image-16-300x160.png 300w, https://otus.ru/journal/wp-content/uploads/2023/06/image-16-150x80.png 150w" sizes="(max-width: 481px) 100vw, 481px" /></figure>
<p>Можно заметить, что результаты будут одинаковыми. Вместо ndarray допускается использование обычного списка из Питона.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%98%D0%B7_%D0%BC%D0%B0%D1%81%D1%81%D0%B8%D0%B2%D0%B0"></span>Из массива<span class="ez-toc-section-end"></span></h3>
<p>Еще один способ формирования the Pandas dataframe – выгрузка из массива. Чтобы лучше понять соответствующий принцип, рекомендуется изучать его на наглядном примере. В качестве массива с информацией будет использоваться data.</p>
<p>Для формирования DataFrame потребуется вызвать конструктор и передать его в качестве параметра список data. Для этого используется DataFrame(data). Соответствующая команда будет возвращать объект Датафрейм, созданный с заданными параметрами. Его можно использовать для дальнейших операций.</p>
<p>Вот – массив, который состоит из трех списков, в каждом из которых по 4 значения. Они образовывают следующую таблицу:</p>
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="121" height="82" src="https://otus.ru/journal/wp-content/uploads/2023/06/image-17.png" alt="Pandas: как создавать DataFrames" class="wp-image-6508"/></figure>
<p>Из него формируется ДатаФрейм. Для этого рекомендуется воспользоваться следующим фрагментом кода:</p>
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="291" height="186" src="https://otus.ru/journal/wp-content/uploads/2023/06/image-19.png" alt="Pandas: как создавать DataFrames" class="wp-image-6510" srcset="https://otus.ru/journal/wp-content/uploads/2023/06/image-19.png 291w, https://otus.ru/journal/wp-content/uploads/2023/06/image-19-150x96.png 150w" sizes="(max-width: 291px) 100vw, 291px" /></figure>
<p>При выводе результата на экран отобразится следующая ситуация:</p>
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="165" height="117" src="https://otus.ru/journal/wp-content/uploads/2023/06/image-21.png" alt="Pandas: как создавать DataFrames" class="wp-image-6512" srcset="https://otus.ru/journal/wp-content/uploads/2023/06/image-21.png 165w, https://otus.ru/journal/wp-content/uploads/2023/06/image-21-150x106.png 150w" sizes="(max-width: 165px) 100vw, 165px" /></figure>
<p>Стоит обратить внимание на следующие особенности концепции создания the dataframes:</p>
<ol>
<li>Каждая строка будет соответствовать каждой строке в исходном документе с массивом.</li>
<li>Если нужно, чтобы каждая строка (string) в заданном множестве значений отображалась как столбец в the Pandas Dataframe, потребуется поменять столбцы и строки местами при создании рассматриваемого компонента.</li>
<li>Для того, чтобы поменять столбцы и строки, используется функция transpose (df = pd.DataFrame(data).transpose().)</li>
<li>Если необходимо задать собственные имена столбцов (dataframe-name), допустимо добавить новый параметр. Он называется columns и пишется в вызов конструктора. В нем останется перечислить желаемые «названия».</li>
</ol>
<p>Запомнить все эти правила, еще один метод создания Датафреймов будет полностью понятен. Но рассмотренные приемы не являются исчерпывающими. Существуют иные методы, которые помогут create the dataframe.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D1%81%D0%BB%D0%BE%D0%B2%D0%B0%D1%80%D0%B5%D0%B9"></span>Список словарей<span class="ez-toc-section-end"></span></h3>
<p>Для создания Датафрейма из списка словарей необходимо предоставить список (list) конструктору класса через: DataFrame(list). Соответствующий вызов вернет объект ДатаФрейм, который включает в себя информацию из списка с ключами, которые выступают именами столбцов.</p>
<p>Вот – наглядный пример фрагмента кода с рассматриваемым решением:</p>
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="559" height="224" src="https://otus.ru/journal/wp-content/uploads/2023/06/image-23.png" alt="Pandas: как создавать DataFrames" class="wp-image-6514" srcset="https://otus.ru/journal/wp-content/uploads/2023/06/image-23.png 559w, https://otus.ru/journal/wp-content/uploads/2023/06/image-23-300x120.png 300w, https://otus.ru/journal/wp-content/uploads/2023/06/image-23-150x60.png 150w" sizes="(max-width: 559px) 100vw, 559px" /></figure>
<p>И результат обработки:</p>
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="291" height="114" src="https://otus.ru/journal/wp-content/uploads/2023/06/image-25.png" alt="Pandas: как создавать DataFrames" class="wp-image-6516" srcset="https://otus.ru/journal/wp-content/uploads/2023/06/image-25.png 291w, https://otus.ru/journal/wp-content/uploads/2023/06/image-25-150x59.png 150w" sizes="(max-width: 291px) 100vw, 291px" /></figure>
<p>Основная проблема рассматриваемого подхода к create DataFrame при помощи списка словарей заключается в том, что разработчик должен убедиться в ключах. В каждом предложенном dict они обязательно должны быть согласованными друг с другом, а также корректными.</p>
<p>Целевой дата фрейм получит столько столбцов, сколько в словарях размещается уникальных ключей. Пример – ключ, который связан с именем. В одном словаре он отображается как Name, во втором – name, в третьем – NAME. В конечном итоге разработчик получит три разных колонки (регистр принимается во внимание) для информации об имени. Такая ситуация часто доставляет определенные проблемы для анализа. Множество значений в результирующем фрейме окажется None.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9C%D0%B0%D1%81%D1%81%D0%B8%D0%B2_NumPy"></span>Массив NumPy<span class="ez-toc-section-end"></span></h3>
<p>Иногда требуется обработать pd-dataframe-columns, которые расположены внутри массива NumPy. Для такого случая программист должен вызвать конструктор через DataFrame(array). Чтобы задать имена столбцов, они должны быть прописаны в отдельном параметре функции – columns.</p>
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="711" height="280" src="https://otus.ru/journal/wp-content/uploads/2023/06/image-28.png" alt="Pandas: как создавать DataFrames" class="wp-image-6519" srcset="https://otus.ru/journal/wp-content/uploads/2023/06/image-28.png 711w, https://otus.ru/journal/wp-content/uploads/2023/06/image-28-300x118.png 300w, https://otus.ru/journal/wp-content/uploads/2023/06/image-28-150x59.png 150w" sizes="(max-width: 711px) 100vw, 711px" /></figure>
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="188" height="109" src="https://otus.ru/journal/wp-content/uploads/2023/06/image-30.png" alt="Pandas: как создавать DataFrames" class="wp-image-6521" srcset="https://otus.ru/journal/wp-content/uploads/2023/06/image-30.png 188w, https://otus.ru/journal/wp-content/uploads/2023/06/image-30-150x87.png 150w" sizes="(max-width: 188px) 100vw, 188px" /></figure>
<p>Каждая строка массива исходных данных будет полностью соответствовать DataFrame. Перед использованием соответствующего приема разработчик должен убедиться в наличии инициализированной библиотеки NumPy. При ее отсутствии – провести предварительную установку, иначе метод работать не будет.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%98%D0%B7_CSV-%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0"></span>Из CSV-документа<span class="ez-toc-section-end"></span></h3>
<p>Работа с CSV-файлами при анализе информации и в BigData – явление, которое не удивляет разработчиков. Поэтому достаточно часто приходится формировать фреймы через заранее подготовленные документы.</p>
<p>CSV или Comma Separated Value представляет собой текстовый документ в виде таблицы. Его значения разделены специальными символами. По умолчанию – запятыми. Такие документы часто имеют первую строку, выступающей в виде заголовка с именами имеющихся столбцов.</p>
<p>Чтобы создать при помощи такого приема Pandas-dataframe-columns, можно пользоваться одной из нескольких функций:</p>
<ul>
<li>read_table;</li>
<li>read_csv.</li>
</ul>
<p>В соответствующих командах потребуется указать имя файла, откуда осуществляется импорт данных, а также символ-разделитель.</p>
<p>Вот – исходный текстовый документ. Он будет называться как data.csv:</p>
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="238" height="104" src="https://otus.ru/journal/wp-content/uploads/2023/06/image-31.png" alt="Pandas: как создавать DataFrames" class="wp-image-6522" srcset="https://otus.ru/journal/wp-content/uploads/2023/06/image-31.png 238w, https://otus.ru/journal/wp-content/uploads/2023/06/image-31-150x66.png 150w" sizes="(max-width: 238px) 100vw, 238px" /></figure>
<p>Из них при помощи обоих предложенных методов будет осуществляться create dataframe. Первый подход – это применение функции read_csv. Она разработана специально для упомянутого формата текстовых документов. Поддерживает большое количество функций, но для простых документов достаточно указать только название исходного документа, а также тип используемого в нем разделителя. В рассматриваемом примере ей служит символ запятой.</p>
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="831" height="105" src="https://otus.ru/journal/wp-content/uploads/2023/06/image-33.png" alt="Pandas: как создавать DataFrames" class="wp-image-6524" srcset="https://otus.ru/journal/wp-content/uploads/2023/06/image-33.png 831w, https://otus.ru/journal/wp-content/uploads/2023/06/image-33-300x38.png 300w, https://otus.ru/journal/wp-content/uploads/2023/06/image-33-150x19.png 150w, https://otus.ru/journal/wp-content/uploads/2023/06/image-33-768x97.png 768w" sizes="(max-width: 831px) 100vw, 831px" /></figure>
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="316" height="117" src="https://otus.ru/journal/wp-content/uploads/2023/06/image-34.png" alt="Pandas: как создавать DataFrames" class="wp-image-6525" srcset="https://otus.ru/journal/wp-content/uploads/2023/06/image-34.png 316w, https://otus.ru/journal/wp-content/uploads/2023/06/image-34-300x111.png 300w, https://otus.ru/journal/wp-content/uploads/2023/06/image-34-150x56.png 150w" sizes="(max-width: 316px) 100vw, 316px" /></figure>
<p>В этом же случае допускается применение read_table. Она будет работать точно также, как и read_csv.</p>
<p>Стоит обратить внимание на то, что иногда разработчику требуется отдельно задавать подписи для pandas-dataframe-columns. В этом случае предстоит пользоваться дополнительным параметром. Он называется name и имеет такую форму записи:</p>
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="529" height="37" src="https://otus.ru/journal/wp-content/uploads/2023/06/image-35.png" alt="Pandas: как создавать DataFrames" class="wp-image-6526" srcset="https://otus.ru/journal/wp-content/uploads/2023/06/image-35.png 529w, https://otus.ru/journal/wp-content/uploads/2023/06/image-35-300x21.png 300w, https://otus.ru/journal/wp-content/uploads/2023/06/image-35-150x10.png 150w" sizes="(max-width: 529px) 100vw, 529px" /></figure>
<p>Если программисту в результирующем фрейме не требуются имена столбцов, параметры задаются как header=None.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%98%D0%B7_%D0%B1%D1%83%D1%84%D0%B5%D1%80%D0%B0_%D0%BE%D0%B1%D0%BC%D0%B5%D0%BD%D0%B0"></span>Из буфера обмена<span class="ez-toc-section-end"></span></h3>
<p>Иногда у аналитика или разработчика имеются данные в табличном формате, которые разделены запятыми или иными разделяющими символами. Они скопированы в буфер обмена и могут быть использованы для считывания изучаемой библиотекой.</p>
<p>Еще один способ формирования pandas-pd-dataframe – это копирование информации прямо из буфера обмена устройства. Отдельный документ с исходными данными формировать в этом случае не придется.</p>
<p>Создание фрейма из буфера позволяет динамически, а также достаточно быстро получать информационные фреймы из материалов различных источников.</p>
<p>Чтобы в Pandas create-dataframe из значений, которые разделены запятыми и скопированы в буфер обмена устройства, используется функция read_clipboard. Дополнительно предстоит указать разделяющий символ.</p>
<p>Вот – информация, которую предстоит скопировать в буфер устройства для дальнейшей обработки изучаемым методом:</p>
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="231" height="107" src="https://otus.ru/journal/wp-content/uploads/2023/06/image-32.png" alt="Pandas: как создавать DataFrames" class="wp-image-6523" srcset="https://otus.ru/journal/wp-content/uploads/2023/06/image-32.png 231w, https://otus.ru/journal/wp-content/uploads/2023/06/image-32-150x69.png 150w" sizes="(max-width: 231px) 100vw, 231px" /></figure>
<p>Теперь остается записать в программном коде следующее:</p>
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="281" height="109" src="https://otus.ru/journal/wp-content/uploads/2023/06/image-5.png" alt="Pandas: как создавать DataFrames" class="wp-image-6496" srcset="https://otus.ru/journal/wp-content/uploads/2023/06/image-5.png 281w, https://otus.ru/journal/wp-content/uploads/2023/06/image-5-150x58.png 150w" sizes="(max-width: 281px) 100vw, 281px" /></figure>
<p>Если разделитель строк dataframe не выступает в качестве одного или нескольких пробелов, желаемый символ или строка (the strings) должны быть обязательно указаны. Для этого разработчик передает параметр функции. В круглых скобках между кавычками-черточками указывается желаемый символ-разделитель. Если функция вызывается без параметров, по умолчанию в итоговом фрейме разделителем выступает пробел.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="HTML-%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82_%D0%B8%D0%BB%D0%B8_%D0%B2%D0%B5%D0%B1-%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0"></span>HTML-документ или веб-страница<span class="ez-toc-section-end"></span></h3>
<p>В Pandas DataFrame может быть сформирован еще проще – при помощи веб-страниц и HTML-документов. Для этого предстоит использовать функцию read_html. В ней разработчик указывает исходный HTML-документ или URL, который предстоит считать. Указанная команда будет искать теги, а затем формировать информационный фрейм с каждой из таблиц в исходном документе.</p>
<p>Read_html ищет теги:</p>
<ul>
<li>table;</li>
<li>tr (строки);</li>
<li>th (заголовки);</li>
<li>td (данные).</li>
</ul>
<p>из них для каждой таблицы будет генерироваться фрейм. Связано это с тем, что рассматриваемая функция всегда будет возвращать список со сгенерированными DataFrames.</p>
<p>Стоит обратить внимание на то, что для корректной реализации рассматриваемого приема требуется подключить библиотеку lxml. Она помогает не в непосредственном pandas-create-dataframe, а в обработке и разборе XML/HTML-документов в Питоне.</p>
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="774" height="539" src="https://otus.ru/journal/wp-content/uploads/2023/06/image-29.png" alt="Pandas: как создавать DataFrames" class="wp-image-6520" srcset="https://otus.ru/journal/wp-content/uploads/2023/06/image-29.png 774w, https://otus.ru/journal/wp-content/uploads/2023/06/image-29-300x209.png 300w, https://otus.ru/journal/wp-content/uploads/2023/06/image-29-150x104.png 150w, https://otus.ru/journal/wp-content/uploads/2023/06/image-29-768x535.png 768w" sizes="(max-width: 774px) 100vw, 774px" /></figure>
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="779" height="599" src="https://otus.ru/journal/wp-content/uploads/2023/06/image-12.png" alt="Pandas: как создавать DataFrames" class="wp-image-6503" srcset="https://otus.ru/journal/wp-content/uploads/2023/06/image-12.png 779w, https://otus.ru/journal/wp-content/uploads/2023/06/image-12-300x231.png 300w, https://otus.ru/journal/wp-content/uploads/2023/06/image-12-150x115.png 150w, https://otus.ru/journal/wp-content/uploads/2023/06/image-12-768x591.png 768w, https://otus.ru/journal/wp-content/uploads/2023/06/image-12-260x200.png 260w, https://otus.ru/journal/wp-content/uploads/2023/06/image-12-87x67.png 87w" sizes="(max-width: 779px) 100vw, 779px" /></figure>
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="912" height="360" src="https://otus.ru/journal/wp-content/uploads/2023/06/image-11.png" alt="Pandas: как создавать DataFrames" class="wp-image-6502" srcset="https://otus.ru/journal/wp-content/uploads/2023/06/image-11.png 912w, https://otus.ru/journal/wp-content/uploads/2023/06/image-11-300x118.png 300w, https://otus.ru/journal/wp-content/uploads/2023/06/image-11-150x59.png 150w, https://otus.ru/journal/wp-content/uploads/2023/06/image-11-768x303.png 768w" sizes="(max-width: 912px) 100vw, 912px" /></figure>
<p>Выше – HTML-файл, с которым планируется дальнейшая работа в процессе изучения метода создания информационного фрейма. В нем поддерживаются две разные таблицы. Документ будет называться – data.html.</p>
<p>Представленный файл рекомендуется открыть в браузере, чтобы увидеть, что в нем хранится. В этом примере формируется pandas-dataframe-name с двумя объектами: по одному для каждой исходной таблицы в data.html. Далее соответствующий список должен быть выведен на дисплей:</p>
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="294" height="125" src="https://otus.ru/journal/wp-content/uploads/2023/06/image-9.png" alt="Pandas: как создавать DataFrames" class="wp-image-6500" srcset="https://otus.ru/journal/wp-content/uploads/2023/06/image-9.png 294w, https://otus.ru/journal/wp-content/uploads/2023/06/image-9-150x64.png 150w" sizes="(max-width: 294px) 100vw, 294px" /></figure>
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="267" height="257" src="https://otus.ru/journal/wp-content/uploads/2023/06/image-27.png" alt="Pandas: как создавать DataFrames" class="wp-image-6518" srcset="https://otus.ru/journal/wp-content/uploads/2023/06/image-27.png 267w, https://otus.ru/journal/wp-content/uploads/2023/06/image-27-150x144.png 150w" sizes="(max-width: 267px) 100vw, 267px" /></figure>
<p>Чтение при помощи библиотеки lxml может оказаться неудачным. В соответствующем случае будут использоваться html5lib, а также bs4. Для этого они должны быть заранее установлены на устройстве разработчика. Если необходимо выполнить чтение конкретной библиотекой, рекомендуется воспользоваться параметром flavor. В нем указывается lib, необходимая для непосредственного применения.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%98%D0%B7_Excel"></span>Из Excel<span class="ez-toc-section-end"></span></h3>
<p>Рассматриваемый тип информационной структуры может быть охарактеризован как «таблица». Пользователи часто работают с Excel, поэтому the Pandas dataframe может быть сформирована из Excel-таблиц. Допускается работа с совместимыми электронными таблицами. Пример – созданные через пакет LibreOffice.</p>
<p>Для выполнения операции используется функция read_excel, в котором указывается файл, из которого необходимо считать исходные материалы. Формат предложенного далее примера – data.xlsx. Эта таблица была создана через GoogleDrive и сохранена.</p>
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="457" height="157" src="https://otus.ru/journal/wp-content/uploads/2023/06/image-26.png" alt="Pandas: как создавать DataFrames" class="wp-image-6517" srcset="https://otus.ru/journal/wp-content/uploads/2023/06/image-26.png 457w, https://otus.ru/journal/wp-content/uploads/2023/06/image-26-300x103.png 300w, https://otus.ru/journal/wp-content/uploads/2023/06/image-26-150x52.png 150w" sizes="(max-width: 457px) 100vw, 457px" /></figure>
<p>Функция read_excel при считывании data for dataframe, будет использовать другую библиотеку. Она напрямую зависит от типа формата исходной таблицы. Для Excel – это openpyxl. Она должна быть установлена предварительно через pip. При работе с форматом Open Document Format, используется библиотека odf.</p>
<p>Когда все готово, можно формировать dataframe columns при помощи такого фрагмента кода:</p>
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="292" height="104" src="https://otus.ru/journal/wp-content/uploads/2023/06/image-24.png" alt="Pandas: как создавать DataFrames" class="wp-image-6515" srcset="https://otus.ru/journal/wp-content/uploads/2023/06/image-24.png 292w, https://otus.ru/journal/wp-content/uploads/2023/06/image-24-150x53.png 150w" sizes="(max-width: 292px) 100vw, 292px" /></figure>
<p>А вот – результат обработки команды:</p>
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="305" height="107" src="https://otus.ru/journal/wp-content/uploads/2023/06/image-22.png" alt="Pandas: как создавать DataFrames" class="wp-image-6513" srcset="https://otus.ru/journal/wp-content/uploads/2023/06/image-22.png 305w, https://otus.ru/journal/wp-content/uploads/2023/06/image-22-300x105.png 300w, https://otus.ru/journal/wp-content/uploads/2023/06/image-22-150x53.png 150w" sizes="(max-width: 305px) 100vw, 305px" /></figure>
<p>Может получиться так, что таблица, необходимая для чтения, расположена в определенной строке и столбце документа. Эта ситуация требует указания того, какие строки должны быть проигнорированы (через skiprows). Также предстоит указать, какие столбцы являются обязательными для чтения при помощи параметра usecols.</p>
<p>Иногда таблица, которую необходимо сформировать в виде фрейма, располагается на первом листе документа. Чтобы указать его, используется параметр sheet_name. Можно прописывать «лист поиска» как цифрой, так и непосредственным названием. Первый такой «элемент» указывается как 0.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%98%D0%B7_JSON"></span>Из JSON<span class="ez-toc-section-end"></span></h3>
<p>Хранение информации в формате JSON является достаточно популярным методом организации данных. Его тоже допустимо использовать, чтобы сформировать pandas-dataframe-name. За операцию отвечает функция read_json. Ей передается имя исходного документа. После обработки «запроса» система создаст новый дата фрейм с желаемым спектром информации.</p>
<p>Вот – исходный текст документа, сохраненного в формате JSON:</p>
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="472" height="443" src="https://otus.ru/journal/wp-content/uploads/2023/06/image-20.png" alt="Pandas: как создавать DataFrames" class="wp-image-6511" srcset="https://otus.ru/journal/wp-content/uploads/2023/06/image-20.png 472w, https://otus.ru/journal/wp-content/uploads/2023/06/image-20-300x282.png 300w, https://otus.ru/journal/wp-content/uploads/2023/06/image-20-150x141.png 150w" sizes="(max-width: 472px) 100vw, 472px" /></figure>
<p>Теперь остается воспользоваться упомянутой функцией:</p>
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="267" height="111" src="https://otus.ru/journal/wp-content/uploads/2023/06/image-18.png" alt="Pandas: как создавать DataFrames" class="wp-image-6509" srcset="https://otus.ru/journal/wp-content/uploads/2023/06/image-18.png 267w, https://otus.ru/journal/wp-content/uploads/2023/06/image-18-150x62.png 150w" sizes="(max-width: 267px) 100vw, 267px" /></figure>
<p>Результат тут будет точно таким же, как и в предыдущих примерах.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%98%D0%B7_SQL-%D0%B1%D0%B0%D0%B7%D1%8B"></span>Из SQL-базы<span class="ez-toc-section-end"></span></h3>
<p>Более сложный пример формирования dataframe-data – из SQL-таблиц. Для этого могут использоваться:</p>
<ul>
<li>read_sql;</li>
<li>запрос на создание и соединение с БД.</li>
</ul>
<p>Для примера рекомендуется рассмотреть ситуацию, при которой поддерживаются две таблицы в БД. Они будут разными: для сотрудников и для отделов. В первом случае будут столбцы:</p>
<ul>
<li>код;</li>
<li>имя;</li>
<li>возраст;</li>
<li>код отдела.</li>
</ul>
<p>В таблице отдела отображаются столбцы: код отдела, название, местоположение. Задача – создать информационный фрейм, в котором содержатся столбцы обеих таблиц. В качестве параметра объединения служит «код отдела».</p>
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="615" height="593" src="https://otus.ru/journal/wp-content/uploads/2023/06/image-15.png" alt="Pandas: как создавать DataFrames" class="wp-image-6506" srcset="https://otus.ru/journal/wp-content/uploads/2023/06/image-15.png 615w, https://otus.ru/journal/wp-content/uploads/2023/06/image-15-300x289.png 300w, https://otus.ru/journal/wp-content/uploads/2023/06/image-15-150x145.png 150w" sizes="(max-width: 615px) 100vw, 615px" /></figure>
<p>После создания БД остается сформировать несколько Pandas Dataframe. Первый вариант – прямой. Он заключается в загрузке фреймов с каждой таблицы. Для этого используется команда read_sql. В ней указываются два параметра: имя считываемой таблицы, а также строка подключения к базе данных:</p>
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="622" height="156" src="https://otus.ru/journal/wp-content/uploads/2023/06/image-14.png" alt="Pandas: как создавать DataFrames" class="wp-image-6505" srcset="https://otus.ru/journal/wp-content/uploads/2023/06/image-14.png 622w, https://otus.ru/journal/wp-content/uploads/2023/06/image-14-300x75.png 300w, https://otus.ru/journal/wp-content/uploads/2023/06/image-14-150x38.png 150w" sizes="(max-width: 622px) 100vw, 622px" /></figure>
<p>Если действовать через SQL-запрос, предстоит выполнить следующее:</p>
<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="457" height="113" src="https://otus.ru/journal/wp-content/uploads/2023/06/image-10.png" alt="Pandas: как создавать DataFrames" class="wp-image-6501" srcset="https://otus.ru/journal/wp-content/uploads/2023/06/image-10.png 457w, https://otus.ru/journal/wp-content/uploads/2023/06/image-10-300x74.png 300w, https://otus.ru/journal/wp-content/uploads/2023/06/image-10-150x37.png 150w" sizes="(max-width: 457px) 100vw, 457px" /></figure>
<p>Read_sql дает возможность задавать запросы для получения нужных данных и их дальнейшего применения. Достаточно указать SQL-команду вместе табличного имени.</p>
<p><a href="https://pythonpip.ru/examples/kak-sozdat-dataframes-pandas-v-python-7-metodov" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Здесь<span class="wpel-icon wpel-image wpel-icon-6"></span></a> и <a href="https://dvsemenov.ru/kak-sozdat-dataframe-s-pomoshhyu-pandas-i-python/#__DataFrame" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">тут<span class="wpel-icon wpel-image wpel-icon-6"></span></a> можно увидеть больше наглядных примеров работы с ДатаФреймами в Пандас. А лучше изучить их с нуля помогут дистанционные компьютерные курсы.</p>
<p><em>Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в <a href="https://otus.ru/?utm_source=oj" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Otus<span class="wpel-icon wpel-image wpel-icon-6"></span></a>!</em> </p>
<p>Также, возможно, вам будут интересны следующие курсы:</p>
<ul>
<li><a href="https://otus.ru/lessons/ml-bigdata/?utm_source=oj&utm_medium=affilate&utm_campaign=ml-bigdata" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Промышленный ML на больших данных<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li><a href="https://otus.ru/lessons/dwh/?utm_source=oj&utm_medium=affilate&utm_campaign=dwh" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Data Warehouse Analyst<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li><a href="https://otus.ru/lessons/data-engineer/?utm_source=oj&utm_medium=affilate&utm_campaign=data-engineer" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Data Engineer<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li><a href="https://otus.ru/lessons/product-manager/?utm_source=oj&utm_medium=affilate&utm_campaign=product" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Product Manager<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li><a href="https://otus.ru/lessons/system_analytic/?utm_source=oj&utm_medium=affilate&utm_campaign=systems_analyst_adv" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Системный аналитик<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
</ul>
</div><!-- .post-content -->
<div class="the-post-foot cf">
<div class="tag-share cf">
<div class="post-tags"><a href="https://otus.ru/journal/tag/machine-learning/" rel="tag" data-wpel-link="internal">Machine Learning</a><a href="https://otus.ru/journal/tag/pandas/" rel="tag" data-wpel-link="internal">Pandas</a><a href="https://otus.ru/journal/tag/sistemnyj-analiz/" rel="tag" data-wpel-link="internal">системный анализ</a></div>
<div class="post-share">
<div class="post-share-icons cf">
<span class="counters">
</span>
<a href="https://www.facebook.com/sharer.php?u=https%3A%2F%2Fotus.ru%2Fjournal%2Fpandas-kak-sozdavat-dataframes%2F" class="link facebook wpel-icon-right" target="_blank" title="Share on Facebook" data-wpel-link="external" rel="nofollow external noopener noreferrer"><i class="fa fa-facebook"></i><span class="wpel-icon wpel-image wpel-icon-6"></span></a>
<a href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fotus.ru%2Fjournal%2Fpandas-kak-sozdavat-dataframes%2F&text=Pandas%3A%20%D0%BA%D0%B0%D0%BA%20%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%B2%D0%B0%D1%82%D1%8C%20DataFrames" class="link twitter wpel-icon-right" target="_blank" title="Share on Twitter" data-wpel-link="external" rel="nofollow external noopener noreferrer"><i class="fa fa-twitter"></i><span class="wpel-icon wpel-image wpel-icon-6"></span></a>
<a href="https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fotus.ru%2Fjournal%2Fpandas-kak-sozdavat-dataframes%2F" class="link linkedin wpel-icon-right" target="_blank" title="LinkedIn" data-wpel-link="external" rel="nofollow external noopener noreferrer"><i class="fa fa-linkedin"></i><span class="wpel-icon wpel-image wpel-icon-6"></span></a>
<a href="https://pinterest.com/pin/create/button/?url=https%3A%2F%2Fotus.ru%2Fjournal%2Fpandas-kak-sozdavat-dataframes%2F&media=https%3A%2F%2Fotus.ru%2Fjournal%2Fwp-content%2Fuploads%2F2023%2F06%2Foj-1080x72051-1.jpg&description=Pandas%3A%20%D0%BA%D0%B0%D0%BA%20%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%B2%D0%B0%D1%82%D1%8C%20DataFrames" class="link pinterest wpel-icon-right" target="_blank" title="Pinterest" data-wpel-link="external" rel="nofollow external noopener noreferrer"><i class="fa fa-pinterest-p"></i><span class="wpel-icon wpel-image wpel-icon-6"></span></a>
</div>
</div>
</div>
</div>
<div class="post-nav">
<div class="post previous cf">
<a href="https://otus.ru/journal/dajdzhest-luchshih-statej-v-bloge-otus-na-habr-za-maj/" title="Prev Post" class="nav-icon" data-wpel-link="internal">
<i class="fa fa-angle-left"></i>
</a>
<span class="content">
<a href="https://otus.ru/journal/dajdzhest-luchshih-statej-v-bloge-otus-na-habr-za-maj/" class="image-link" rel="previous" data-wpel-link="internal">
<img width="150" height="106" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20150%20106%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="attachment-thumbnail size-thumbnail lazyload wp-post-image" alt="Дайджест лучших статей в блоге OTUS на Хабр за май" decoding="async" loading="lazy" data-srcset="https://otus.ru/journal/wp-content/uploads/2023/06/oj-1080x720-kopiya-150x106.png 150w, https://otus.ru/journal/wp-content/uploads/2023/06/oj-1080x720-kopiya-300x212.png 300w, https://otus.ru/journal/wp-content/uploads/2023/06/oj-1080x720-kopiya-1024x724.png 1024w, https://otus.ru/journal/wp-content/uploads/2023/06/oj-1080x720-kopiya-768x543.png 768w, https://otus.ru/journal/wp-content/uploads/2023/06/oj-1080x720-kopiya-1536x1086.png 1536w" data-src="https://otus.ru/journal/wp-content/uploads/2023/06/oj-1080x720-kopiya-150x106.png" data-sizes="(max-width: 150px) 100vw, 150px" title="Дайджест лучших статей в блоге OTUS на Хабр за май" /> </a>
<div class="post-meta">
<span class="label">Prev Post</span>
<div class="post-meta post-meta-b">
<h2 class="post-title">
<a href="https://otus.ru/journal/dajdzhest-luchshih-statej-v-bloge-otus-na-habr-za-maj/" data-wpel-link="internal">Дайджест лучших статей в блоге OTUS на Хабр за май</a>
</h2>
<div class="below">
<a href="https://otus.ru/journal/dajdzhest-luchshih-statej-v-bloge-otus-na-habr-za-maj/" class="meta-item date-link" data-wpel-link="internal"><time class="post-date" datetime="2023-06-01T11:03:39+00:00">1 июня, 2023</time></a>
<span class="meta-sep"></span>
<span class="meta-item read-time">4 Mins Read</span>
</div>
</div> </div>
</span>
</div>
<div class="post next cf">
<a href="https://otus.ru/journal/interfejs-map-v-java/" title="Next Post" class="nav-icon" data-wpel-link="internal">
<i class="fa fa-angle-right"></i>
</a>
<span class="content">
<a href="https://otus.ru/journal/interfejs-map-v-java/" class="image-link" rel="next" data-wpel-link="internal">
<img width="150" height="106" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20150%20106%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="attachment-thumbnail size-thumbnail lazyload wp-post-image" alt="Интерфейс MAP в Java" decoding="async" loading="lazy" data-srcset="https://otus.ru/journal/wp-content/uploads/2023/06/oj-1080x72052-1-150x106.jpg 150w, https://otus.ru/journal/wp-content/uploads/2023/06/oj-1080x72052-1-300x212.jpg 300w, https://otus.ru/journal/wp-content/uploads/2023/06/oj-1080x72052-1-1024x724.jpg 1024w, https://otus.ru/journal/wp-content/uploads/2023/06/oj-1080x72052-1-768x543.jpg 768w, https://otus.ru/journal/wp-content/uploads/2023/06/oj-1080x72052-1-1536x1086.jpg 1536w" data-src="https://otus.ru/journal/wp-content/uploads/2023/06/oj-1080x72052-1-150x106.jpg" data-sizes="(max-width: 150px) 100vw, 150px" title="Интерфейс MAP в Java" /> </a>
<div class="post-meta">
<span class="label">Next Post</span>
<div class="post-meta post-meta-b">
<h2 class="post-title">
<a href="https://otus.ru/journal/interfejs-map-v-java/" data-wpel-link="internal">Интерфейс MAP в Java</a>
</h2>
<div class="below">
<a href="https://otus.ru/journal/interfejs-map-v-java/" class="meta-item date-link" data-wpel-link="internal"><time class="post-date" datetime="2023-06-04T19:09:29+00:00">4 июня, 2023</time></a>
<span class="meta-sep"></span>
<span class="meta-item read-time">7 Mins Read</span>
</div>
</div> </div>
</span>
</div>
</div>
<section class="related-posts grid-3">
<h4 class="section-head"><span class="title">Читать ещё</span></h4>
<div class="ts-row posts cf">
<article class="post col-4">
<a href="https://otus.ru/journal/uroven-gotovnosti-cto-k-2026/" title="Уровень готовности CTO к 2026" class="image-link" data-wpel-link="internal">
<img width="270" height="180" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20270%20180%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="image lazyload wp-post-image" alt="Уровень готовности CTO к 2026" title="Уровень готовности CTO к 2026" decoding="async" loading="lazy" data-srcset="https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-3-270x180.jpg 270w, https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-3-770x515.jpg 770w, https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-3-370x245.jpg 370w" data-src="https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-3-270x180.jpg" data-sizes="(max-width: 270px) 100vw, 270px" /> </a>
<div class="content">
<h3 class="post-title"><a href="https://otus.ru/journal/uroven-gotovnosti-cto-k-2026/" class="post-link" data-wpel-link="internal">Уровень готовности CTO к 2026</a></h3>
<div class="post-meta">
<time class="post-date" datetime="2025-11-16T19:50:59+00:00">16 ноября, 2025</time>
</div>
</div>
</article >
<article class="post col-4">
<a href="https://otus.ru/journal/novye-uroki-noyabrya-tolko-top-temy-po-programmirovaniju/" title="Новые уроки ноября: только топ-темы по программированию" class="image-link" data-wpel-link="internal">
<img width="270" height="180" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20270%20180%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="image lazyload wp-post-image" alt="Новые уроки ноября: только топ-темы по программированию" title="Новые уроки ноября: только топ-темы по программированию" decoding="async" loading="lazy" data-srcset="https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-2-270x180.jpg 270w, https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-2-770x515.jpg 770w, https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-2-370x245.jpg 370w" data-src="https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-2-270x180.jpg" data-sizes="(max-width: 270px) 100vw, 270px" /> </a>
<div class="content">
<h3 class="post-title"><a href="https://otus.ru/journal/novye-uroki-noyabrya-tolko-top-temy-po-programmirovaniju/" class="post-link" data-wpel-link="internal">Новые уроки ноября: только топ-темы по программированию</a></h3>
<div class="post-meta">
<time class="post-date" datetime="2025-11-09T23:24:11+00:00">9 ноября, 2025</time>
</div>
</div>
</article >
<article class="post col-4">
<a href="https://otus.ru/journal/schjot-idjot-na-chasy/" title="Счёт идёт на часы" class="image-link" data-wpel-link="internal">
<img width="270" height="180" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20270%20180%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="image lazyload wp-post-image" alt="Счёт идёт на часы" title="Счёт идёт на часы" decoding="async" loading="lazy" data-srcset="https://otus.ru/journal/wp-content/uploads/2025/10/oj-1080x720-kopiya-7-270x180.png 270w, https://otus.ru/journal/wp-content/uploads/2025/10/oj-1080x720-kopiya-7-770x515.png 770w, https://otus.ru/journal/wp-content/uploads/2025/10/oj-1080x720-kopiya-7-370x245.png 370w" data-src="https://otus.ru/journal/wp-content/uploads/2025/10/oj-1080x720-kopiya-7-270x180.png" data-sizes="(max-width: 270px) 100vw, 270px" /> </a>
<div class="content">
<h3 class="post-title"><a href="https://otus.ru/journal/schjot-idjot-na-chasy/" class="post-link" data-wpel-link="internal">Счёт идёт на часы</a></h3>
<div class="post-meta">
<time class="post-date" datetime="2025-10-30T15:04:59+00:00">30 октября, 2025</time>
</div>
</div>
</article >
</div>
</section>
</article> <!-- .the-post -->
</div>
<aside class="col-4 sidebar">
<div class="inner">
<ul>
<li id="search-2" class="widget widget_search"><h5 class="widget-title"><span>Поиск по блогу</span></h5>
<form method="get" class="search-form" action="https://otus.ru/journal/">
<label>
<span class="screen-reader-text">Search for:</span>
<input type="search" class="search-field" placeholder="Введите запрос и нажмите Enter" value="" name="s" title="Search for:" />
</label>
<button type="submit" class="search-submit"><i class="fa fa-search"></i></button>
</form>
</li>
<li id="tag_cloud-5" class="widget widget_tag_cloud"><h5 class="widget-title"><span>Метки</span></h5><div class="tagcloud"><a href="https://otus.ru/journal/tag/android-2/" class="tag-cloud-link tag-link-74 tag-link-position-1" style="font-size: 12.472222222222pt;" aria-label="Android (34 элемента)" data-wpel-link="internal">Android</a>
<a href="https://otus.ru/journal/tag/c-3/" class="tag-cloud-link tag-link-91 tag-link-position-2" style="font-size: 10.916666666667pt;" aria-label="C (23 элемента)" data-wpel-link="internal">C</a>
<a href="https://otus.ru/journal/tag/c-2/" class="tag-cloud-link tag-link-81 tag-link-position-3" style="font-size: 12.666666666667pt;" aria-label="C# (35 элементов)" data-wpel-link="internal">C#</a>
<a href="https://otus.ru/journal/tag/c/" class="tag-cloud-link tag-link-20 tag-link-position-4" style="font-size: 12.472222222222pt;" aria-label="c++ (34 элемента)" data-wpel-link="internal">c++</a>
<a href="https://otus.ru/journal/tag/computer-science/" class="tag-cloud-link tag-link-209 tag-link-position-5" style="font-size: 15.972222222222pt;" aria-label="computer science (78 элементов)" data-wpel-link="internal">computer science</a>
<a href="https://otus.ru/journal/tag/css/" class="tag-cloud-link tag-link-288 tag-link-position-6" style="font-size: 8.6805555555556pt;" aria-label="CSS (13 элементов)" data-wpel-link="internal">CSS</a>
<a href="https://otus.ru/journal/tag/data-science/" class="tag-cloud-link tag-link-151 tag-link-position-7" style="font-size: 8pt;" aria-label="Data Science (11 элементов)" data-wpel-link="internal">Data Science</a>
<a href="https://otus.ru/journal/tag/devops/" class="tag-cloud-link tag-link-98 tag-link-position-8" style="font-size: 10.138888888889pt;" aria-label="devops (19 элементов)" data-wpel-link="internal">devops</a>
<a href="https://otus.ru/journal/tag/docker/" class="tag-cloud-link tag-link-143 tag-link-position-9" style="font-size: 8.2916666666667pt;" aria-label="Docker (12 элементов)" data-wpel-link="internal">Docker</a>
<a href="https://otus.ru/journal/tag/gamedev/" class="tag-cloud-link tag-link-25 tag-link-position-10" style="font-size: 11.694444444444pt;" aria-label="gamedev (28 элементов)" data-wpel-link="internal">gamedev</a>
<a href="https://otus.ru/journal/tag/hr/" class="tag-cloud-link tag-link-103 tag-link-position-11" style="font-size: 8pt;" aria-label="hr (11 элементов)" data-wpel-link="internal">hr</a>
<a href="https://otus.ru/journal/tag/html/" class="tag-cloud-link tag-link-217 tag-link-position-12" style="font-size: 11.208333333333pt;" aria-label="HTML (25 элементов)" data-wpel-link="internal">HTML</a>
<a href="https://otus.ru/journal/tag/ios/" class="tag-cloud-link tag-link-101 tag-link-position-13" style="font-size: 8.9722222222222pt;" aria-label="iOS (14 элементов)" data-wpel-link="internal">iOS</a>
<a href="https://otus.ru/journal/tag/it/" class="tag-cloud-link tag-link-50 tag-link-position-14" style="font-size: 10.527777777778pt;" aria-label="IT (21 элемент)" data-wpel-link="internal">IT</a>
<a href="https://otus.ru/journal/tag/java/" class="tag-cloud-link tag-link-75 tag-link-position-15" style="font-size: 15.680555555556pt;" aria-label="Java (73 элемента)" data-wpel-link="internal">Java</a>
<a href="https://otus.ru/journal/tag/javascript/" class="tag-cloud-link tag-link-83 tag-link-position-16" style="font-size: 14.319444444444pt;" aria-label="JavaScript (53 элемента)" data-wpel-link="internal">JavaScript</a>
<a href="https://otus.ru/journal/tag/linux/" class="tag-cloud-link tag-link-141 tag-link-position-17" style="font-size: 11.888888888889pt;" aria-label="Linux (29 элементов)" data-wpel-link="internal">Linux</a>
<a href="https://otus.ru/journal/tag/machine-learning/" class="tag-cloud-link tag-link-167 tag-link-position-18" style="font-size: 8.6805555555556pt;" aria-label="Machine Learning (13 элементов)" data-wpel-link="internal">Machine Learning</a>
<a href="https://otus.ru/journal/tag/otus-book/" class="tag-cloud-link tag-link-261 tag-link-position-19" style="font-size: 9.9444444444444pt;" aria-label="otus book (18 элементов)" data-wpel-link="internal">otus book</a>
<a href="https://otus.ru/journal/tag/php/" class="tag-cloud-link tag-link-45 tag-link-position-20" style="font-size: 10.527777777778pt;" aria-label="PHP (21 элемент)" data-wpel-link="internal">PHP</a>
<a href="https://otus.ru/journal/tag/python/" class="tag-cloud-link tag-link-27 tag-link-position-21" style="font-size: 16.944444444444pt;" aria-label="Python (99 элементов)" data-wpel-link="internal">Python</a>
<a href="https://otus.ru/journal/tag/qa/" class="tag-cloud-link tag-link-155 tag-link-position-22" style="font-size: 11.402777777778pt;" aria-label="qa (26 элементов)" data-wpel-link="internal">qa</a>
<a href="https://otus.ru/journal/tag/sql/" class="tag-cloud-link tag-link-38 tag-link-position-23" style="font-size: 12.861111111111pt;" aria-label="SQL (37 элементов)" data-wpel-link="internal">SQL</a>
<a href="https://otus.ru/journal/tag/team-lead/" class="tag-cloud-link tag-link-364 tag-link-position-24" style="font-size: 9.9444444444444pt;" aria-label="team lead (18 элементов)" data-wpel-link="internal">team lead</a>
<a href="https://otus.ru/journal/tag/unity/" class="tag-cloud-link tag-link-24 tag-link-position-25" style="font-size: 8pt;" aria-label="unity (11 элементов)" data-wpel-link="internal">unity</a>
<a href="https://otus.ru/journal/tag/algoritmy/" class="tag-cloud-link tag-link-30 tag-link-position-26" style="font-size: 9.9444444444444pt;" aria-label="Алгоритмы (18 элементов)" data-wpel-link="internal">Алгоритмы</a>
<a href="https://otus.ru/journal/tag/bazy-dannyh/" class="tag-cloud-link tag-link-40 tag-link-position-27" style="font-size: 10.138888888889pt;" aria-label="Базы данных (19 элементов)" data-wpel-link="internal">Базы данных</a>
<a href="https://otus.ru/journal/tag/matematika/" class="tag-cloud-link tag-link-44 tag-link-position-28" style="font-size: 10.916666666667pt;" aria-label="Математика (23 элемента)" data-wpel-link="internal">Математика</a>
<a href="https://otus.ru/journal/tag/arhitektura-po/" class="tag-cloud-link tag-link-10 tag-link-position-29" style="font-size: 9.4583333333333pt;" aria-label="архитектура ПО (16 элементов)" data-wpel-link="internal">архитектура ПО</a>
<a href="https://otus.ru/journal/tag/bazy-dannyh-2/" class="tag-cloud-link tag-link-251 tag-link-position-30" style="font-size: 10.138888888889pt;" aria-label="базы данных (19 элементов)" data-wpel-link="internal">базы данных</a>
<a href="https://otus.ru/journal/tag/vebinar/" class="tag-cloud-link tag-link-201 tag-link-position-31" style="font-size: 13.930555555556pt;" aria-label="вебинар (48 элементов)" data-wpel-link="internal">вебинар</a>
<a href="https://otus.ru/journal/tag/dajdzhest/" class="tag-cloud-link tag-link-308 tag-link-position-32" style="font-size: 10.722222222222pt;" aria-label="дайджест (22 элемента)" data-wpel-link="internal">дайджест</a>
<a href="https://otus.ru/journal/tag/zapis-vebinara/" class="tag-cloud-link tag-link-226 tag-link-position-33" style="font-size: 14.902777777778pt;" aria-label="запись вебинара (61 элемент)" data-wpel-link="internal">запись вебинара</a>
<a href="https://otus.ru/journal/tag/zapis-uroka/" class="tag-cloud-link tag-link-272 tag-link-position-34" style="font-size: 16.069444444444pt;" aria-label="запись урока (80 элементов)" data-wpel-link="internal">запись урока</a>
<a href="https://otus.ru/journal/tag/informacionnaya-bezopasnost/" class="tag-cloud-link tag-link-232 tag-link-position-35" style="font-size: 10.138888888889pt;" aria-label="информационная безопасность (19 элементов)" data-wpel-link="internal">информационная безопасность</a>
<a href="https://otus.ru/journal/tag/karera-v-it/" class="tag-cloud-link tag-link-292 tag-link-position-36" style="font-size: 9.9444444444444pt;" aria-label="карьера в IT (18 элементов)" data-wpel-link="internal">карьера в IT</a>
<a href="https://otus.ru/journal/tag/podborka/" class="tag-cloud-link tag-link-7 tag-link-position-37" style="font-size: 12.666666666667pt;" aria-label="подборка (35 элементов)" data-wpel-link="internal">подборка</a>
<a href="https://otus.ru/journal/tag/podborka-statej/" class="tag-cloud-link tag-link-219 tag-link-position-38" style="font-size: 15.777777777778pt;" aria-label="подборка статей (75 элементов)" data-wpel-link="internal">подборка статей</a>
<a href="https://otus.ru/journal/tag/programmirovanie/" class="tag-cloud-link tag-link-65 tag-link-position-39" style="font-size: 22pt;" aria-label="программирование (332 элемента)" data-wpel-link="internal">программирование</a>
<a href="https://otus.ru/journal/tag/proekt/" class="tag-cloud-link tag-link-321 tag-link-position-40" style="font-size: 11.888888888889pt;" aria-label="проект (29 элементов)" data-wpel-link="internal">проект</a>
<a href="https://otus.ru/journal/tag/proektnaya-rabota/" class="tag-cloud-link tag-link-310 tag-link-position-41" style="font-size: 11.597222222222pt;" aria-label="проектная работа (27 элементов)" data-wpel-link="internal">проектная работа</a>
<a href="https://otus.ru/journal/tag/seti/" class="tag-cloud-link tag-link-181 tag-link-position-42" style="font-size: 12.958333333333pt;" aria-label="сети (38 элементов)" data-wpel-link="internal">сети</a>
<a href="https://otus.ru/journal/tag/testirovanie/" class="tag-cloud-link tag-link-69 tag-link-position-43" style="font-size: 13.930555555556pt;" aria-label="тестирование (48 элементов)" data-wpel-link="internal">тестирование</a>
<a href="https://otus.ru/journal/tag/upravlenie-komandoj/" class="tag-cloud-link tag-link-63 tag-link-position-44" style="font-size: 11.694444444444pt;" aria-label="управление командой (28 элементов)" data-wpel-link="internal">управление командой</a>
<a href="https://otus.ru/journal/tag/habr-2/" class="tag-cloud-link tag-link-203 tag-link-position-45" style="font-size: 13.930555555556pt;" aria-label="хабр (48 элементов)" data-wpel-link="internal">хабр</a></div>
</li>
</ul>
</div>
</aside>
</div> <!-- .ts-row -->
</div> <!-- .main -->
<footer class="main-footer dark bold">
<section class="lower-footer cf">
<div class="wrap">
<div class="links">
<div class="menu-menju-navykov-container"><ul id="menu-menju-navykov-1" class="menu"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10413"><a href="https://otus.ru/categories/programming/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Программирование<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10414"><a href="https://otus.ru/categories/architecture/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Архитектура<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10415"><a href="https://otus.ru/categories/operations/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Инфраструктура<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10416"><a href="https://otus.ru/categories/information-security-courses/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Безопасность<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10417"><a href="https://otus.ru/categories/data-science/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Data Science<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10418"><a href="https://otus.ru/categories/gamedev/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">GameDev<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10419"><a href="https://otus.ru/categories/marketing-business/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Управление<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10420"><a href="https://otus.ru/categories/analytics/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Аналитика и анализ<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10421"><a href="https://otus.ru/categories/testing/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Тестирование<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
</ul></div> </div>
<p class="copyright"> © 2015-2026 OTUS </p>
<div class="to-top">
<a href="#" class="back-to-top"><i class="fa fa-angle-up"></i> Top</a>
</div>
</div>
</section>
</footer>
</div> <!-- .main-wrap -->
<div class="mobile-menu-container off-canvas" id="mobile-menu">
<a href="#" class="close"><i class="fa fa-times"></i></a>
<div class="logo">
</div>
<ul class="mobile-menu"></ul>
</div>
<div class="search-modal-wrap">
<div class="search-modal-box" role="dialog" aria-modal="true">
<form method="get" class="search-form" action="https://otus.ru/journal/">
<input type="search" class="search-field" name="s" placeholder="Search..." value="" required />
<button type="submit" class="search-submit visuallyhidden">Submit</button>
<p class="message">
Type above and press <em>Enter</em> to search. Press <em>Esc</em> to cancel. </p>
</form>
</div>
</div>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/clearfy/components/comments-plus/assets/js/url-span.js" id="wbcr-comments-plus-url-span-js"></script>
<script type="text/javascript" id="ez-toc-scroll-scriptjs-js-extra">
/* <![CDATA[ */
var eztoc_smooth_local = {"scroll_offset":"0"};
/* ]]> */
</script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/assets/js/smooth_scroll.min.js" id="ez-toc-scroll-scriptjs-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/vendor/js-cookie/js.cookie.min.js" id="ez-toc-js-cookie-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/vendor/sticky-kit/jquery.sticky-kit.min.js" id="ez-toc-jquery-sticky-kit-js"></script>
<script type="text/javascript" id="ez-toc-js-js-extra">
/* <![CDATA[ */
var ezTOC = {"smooth_scroll":"1","visibility_hide_by_default":"","scroll_offset":"0","fallbackIcon":"<span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span>"};
/* ]]> */
</script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/assets/js/front.min.js" id="ez-toc-js-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/custom-script.js" id="custom-script-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/magnific-popup.js" id="magnific-popup-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/jquery.fitvids.js" id="jquery-fitvids-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/imagesloaded.min.js" id="imagesloaded-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/object-fit-images.js" id="object-fit-images-js"></script>
<script type="text/javascript" id="contentberg-theme-js-extra">
/* <![CDATA[ */
var Bunyad = {"custom_ajax_url":"\/journal\/pandas-kak-sozdavat-dataframes\/"};
/* ]]> */
</script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/theme.js" id="contentberg-theme-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/theia-sticky-sidebar.js" id="theia-sticky-sidebar-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/jquery.slick.js" id="jquery-slick-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/jarallax.js" id="jarallax-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/masonry.min.js" id="masonry-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/jquery/jquery.masonry.min.js" id="jquery-masonry-js"></script>
</body>
</html>
<!-- Cache served by breeze CACHE - Last modified: Mon, 09 Mar 2026 15:17:42 GMT -->