Перво-наперво, хранилище со всеми записниками этой серии из трех частей о Пандах здесь:
https://github.com/hugoestradas/Pandas_101
В случае, если вы жили под камнем за последние 7 лет, библиотека Pandas известна своими простыми в использовании возможностями анализа данных.
На самом деле, его название происходит не от черно -белого китайского медведя, а из -за аббревиатуры для «панельных данных», причудливого термина эконометрики для наборов данных, которые включают наблюдения в течение нескольких периодов времени для одних и тех же людей, больше о что в этом документе: https://www.dlr.de/sc/portaldata/15/resources/dokumente/pyhpc2011/submissions/pyhpc2011_submission_9.pdf
Он поставляется с прохладными функциями, такими как загрузка данных из нескольких форматов, переименование функций, отображение и построение данных, структуры данных, расширенная индексация, функции соединения данных и агрегация данных, всеобъемлющий API ввода -вывода … и лишь некоторые из них.
В библиотеке Pandas есть две основные структуры данных: серии и DataFrame.
1) Объект серии Pandas серии A – это массив с индексированными данными.
Вот пример объекта серии на Python с помощью Pandas:
В этом примере выход показывает индекс (положение) слева и значения справа. Если вы не указаете индекс, Pandas будет использовать по умолчанию.
Кроме того, если вам может понадобиться, можно создать объект серии с меткой, указывающей на каждую данную:
И вы даже можете использовать эти этикетки в массиве, чтобы выбрать конкретное значение из объекта серии:
Добавление сложности к примерам, если вам просто нужно применять математические операции к объекту серии, вы можете использовать Numpy (еще одна библиотека Python для научных вычислений и математических операций). Например, сохранение ссылки на индекс-значение:
Одно распространенное использование серии – это создание специализированных словарей.
Словарь – это еще одна форма структуры данных, которая отображает произвольные ключи с набором произвольных значений.
В следующем примере показано, как объединить обе структуры, чтобы создать объект серии как Dictionary:
По умолчанию будет создана строка, где индекс извлекается из упорядоченных ключей. Отсюда вы можете сделать типичный доступ к элементам в стиле словаря:
Но в отличие от словаря, серия Pandas также поддерживает операции в стиле массива, такие как нарезка:
Если вы проходите DICT, индекс в полученной серии будет иметь ключ этого дикта в отсортированном порядке. Таким образом, можно переопределить это, передавая ключи от дикта в том порядке, в котором вы хотите, чтобы они были в полученном сериале:
Если вы заметили, что я намеренно добавил одно значение, которое нет в серии 4: «iPhone XR», следовательно, Pandas отмечают его значение в серии 5 как «не число» (NAN). Если вы заинтересованы в дайвинге в этом конкретном вопросе, вот конкретная документация Pandas для значений NAN: https://pandas.pydata.org/pandas-docs/stable/user_guide/missing_data.html
Теперь вопрос, который вы должны задать: «Как мне иметь дело с отсутствующими данными в серии Pandas (или в целом)? ” Ответ, функции «Isnull» и «Notnull»:
Функции автоматически выровнены в соответствии с именем индекса при работе с арифметическими операциями, и как сам объект серии, так и его индекс имеют атрибут имени:
2) Pandas DataFrame
Таким образом, серии Pandas полезны, но в реальном мире сценария очень необычно работать с простым набором данных при анализе тонн данных для нового проекта.
Давайте поговорим о том, что такое DataFrame.
Я собираюсь оставить официальную документацию с веб -сайта Pandas, так что вы можете прочитать больше о своем собственном, что именно является DataFrame в мире Pandas: https://pandas.pydata.org/docs/reference/api/pandas.dataframe.html?highlight=dataframe#pandas.dataframe
ОК, вкратце: «DataFrame Pandas-это двумерная, невозможная, потенциально гетерогенная структура таблиц с меченым осью».
Так что выразите это более скромными словами, DataFrame-это такая таблица из реляционной базы данных, с поворотом, который вместо того, чтобы храниться в схеме, диске, файловой системе и т. Д. Вам нужно, или вы продолжаете запускать ядро при запуске всего ноутбука.
Помните, что Pandas – это просто большая библиотека Python, а не «хранилище данных» в том, как RDBMS, а Pandas DataFrame не является инструментом устойчивости данных.
Хорошо, надеюсь, приведенный выше текст был полезен, теперь давайте попадем в какой -нибудь код.
Я собираюсь создать серию Pandas, а затем преобразовать их в один пандас DataFrame:
Давайте проанализируем этот раздел камеры ноутбука по ячейке:
Сначала я создаю массив под названием «Серия», который позже я преобразую в серию Pandas:
Затем я повторяю тот же процесс, используя тот же массив «серии» с новой серией под названием «iPhone»:
Теперь, в основном у меня есть 2 новых серии Pandas, «цвета» и «iPhone», и то, что я делаю в последних двух ячеек приведенного выше изображения моих записей Databricks, объединяет эти две серии в DataFrame Pandas с 2 столбцами , «Модели» и «Цвета»:
Обратите внимание, что в результате он в значительной степени очень эксплуатационный, двухмерная табличная структура, созданная из 2 разных серий с одинаковым количеством элементов:
Без серии создание одного и того же диапазона данных должно выглядеть следующим образом:
Так что это похоже на создание серии «цветов» и «iPhone» в одной паре скол и кудрявых скоб.
Теперь есть много способов создания DataFrames Pandas, один из которых особенно интересный способ сделать это, – передавать словарь конструктору DataFrame, в котором клавиши словаря являются именами столбцов, а значения словаря являются списками значений столбцов:
Двигаясь вперед, добавив большую сложность для гораздо большего количества DataFrame Pandas, вы можете использовать библиотеку Numpy (используемой для работы с массивами, линейной алгеброй, преобразованием Фурье и матрицам), используя функцию «случайный. и столбцы:
Для нечетных столбцов можно использовать список строк:
Вы даже можете переименовать имена столбцов по желанию, если просто так, что DataFrame не имеет надлежащего именования в своих столбцах, или вы просто хотите переименовать их для более формальной или приятной номенклатуры:
Оригинал: “https://dev.to/hugoestradas/pandas-101-pt-i-introduction-to-data-structures-404e”