pandas series что это

Структуры данных в pandas / pd 2

Ядром pandas являются две структуры данных, в которых происходят все операции:

Series — это структура, используемая для работы с последовательностью одномерных данных, а Dataframe — более сложная и подходит для нескольких измерений.

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

Однако особенности этих структур основаны на одной черте — интеграции в их структуру объектов index и labels (метки). С их помощью структурами становится очень легко манипулировать.

Series (серии)

pandas series что это. Смотреть фото pandas series что это. Смотреть картинку pandas series что это. Картинка про pandas series что это. Фото pandas series что это

Создание объекта Series

Для создания объекта Series с предыдущего изображения необходимо вызвать конструктор Series() и передать в качестве аргумента массив, содержащий значения, которые необходимо включить.

Как можно увидеть по выводу, слева отображаются значения индексов, а справа — сами значения (данные).

В таком случае необходимо будет при вызове конструктора включить параметр index и присвоить ему массив строк с метками.

Выбор элементов по индексу или метке

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

Или же можно выбрать метку, соответствующую положению индекса.

Таким же образом можно выбрать несколько элементов массива numpy с помощью следующей команды:

В этом случае можно использовать соответствующие метки, но указать их список в массиве.

Присваивание значений элементам

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

Создание Series из массивов NumPy

Фильтрация значений

Например, если нужно узнать, какие элементы в Series больше 8, то можно написать следующее:

Операции и математические функции

Для операторов можно написать простое арифметическое уравнение.

Количество значений

В Series часто встречаются повторения значений. Поэтому важно иметь информацию, которая бы указывала на то, есть ли дубликаты или конкретное значение в объекте.

Значения NaN

Функции isnull() и notnull() очень полезны для определения индексов без значения.

Series из словарей

Операции с сериями

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

Новый объект получает только те элементы, где метки совпали. Все остальные тоже присутствуют, но со значением NaN.

DataFrame (датафрейм)

pandas series что это. Смотреть фото pandas series что это. Смотреть картинку pandas series что это. Картинка про pandas series что это. Фото pandas series что это

Создание Dataframe

colorobjectprice
0blueball1.2
1greenpen1.0
2yellowpencil0.6
3redpaper0.9
4whitemug1.7
objectprice
0ball1.2
1pen1.0
2pencil0.6
3paper0.9
4mug1.7

Выбор элементов

То же можно проделать и для получения списка индексов.

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

Для строк внутри Dataframe используется атрибут loc со значением индекса нужной строки.

Для выбора нескольких строк можно указать массив с их последовательностью.

colorobjectprice
2yellowpencil0.6
4whitemug1.7

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

colorobjectprice
2yellowpencil0.6
4whitemug1.7

Возвращаемое значение — объект Dataframe с одной строкой. Если нужно больше одной строки, необходимо просто указать диапазон.

colorobjectprice
0blueball1.2

Наконец, если необходимо получить одно значение из объекта, сперва нужно указать название колонки, а потом — индекс или метку строки.

Присваивание и замена значений

itemcolorobjectprice
id
0blueball1.2
1greenpen1.0
2yellowpencil0.6
3redpaper0.9
4whitemug1.7

Одна из главных особенностей структур данных pandas — их гибкость. Можно вмешаться на любом уровне для изменения внутренней структуры данных. Например, добавление новой колонки — крайне распространенная операция.

Ее можно выполнить, присвоив значение экземпляру Dataframe и определив новое имя колонки.

itemcolorobjectpricenew
id
0blueball1.212
1greenpen1.012
2yellowpencil0.612
3redpaper0.912
4whitemug1.712

Здесь видно, что появилась новая колонка new со значениями 12 для каждого элемента.

Для обновления значений можно использовать массив.

itemcolorobjectpricenew
id
0blueball1.23.0
1greenpen1.01.3
2yellowpencil0.62.2
3redpaper0.90.8
4whitemug1.71.1

Тот же подход используется для обновления целой колонки. Например, можно применить функцию np.arrange() для обновления значений колонки с помощью заранее заданной последовательности.

itemcolorobjectpricenew
id
0blueball1.20
1greenpen1.01
2yellowpencil0.62
3redpaper0.93
4whitemug1.74

Наконец, для изменения одного значения нужно лишь выбрать элемент и присвоить ему новое значение.

Вхождение значений

itemcolorobjectpricenew
id
0FalseFalseFalseFalse
1FalseTrueTrueTrue
2FalseFalseFalseFalse
3FalseFalseFalseFalse
4FalseFalseFalseFalse
itemcolorobjectpricenew
id
0NaNNaNNaNNaN
1NaNpen1.01.0
2NaNNaNNaNNaN
3NaNNaNNaNNaN
4NaNNaNNaNNaN

Удаление колонки

itemcolorobjectprice
id
0blueball1.2
1greenpen1.0
2yellowpencil3.3
3redpaper0.9
4whitemug1.7

Фильтрация

Даже для Dataframe можно применять фильтры, используя определенные условия. Например, вам нужно получить все значения меньше определенного числа (допустим, 1,2).

itemcolorobjectprice
id
0blueballNaN
1greenpen1.0
2yellowpencilNaN
3redpaper0.9
4whitemugNaN

Dataframe из вложенного словаря

В Python часто используется вложенный dict :

При интерпретации вложенный структуры возможно такое, что не все поля будут совпадать. pandas компенсирует это несоответствие, добавляя NaN на место недостающих значений.

blueredwhite
201117NaN13
20122722.022
20131833.016

Транспонирование Dataframe

201120122013
blue17.027.018.0
redNaN22.033.0
white13.022.016.0

Объекты Index

В отличие от других элементов в структурах данных pandas ( Series и Dataframe ) объекты index — неизменяемые. Это обеспечивает безопасность, когда нужно передавать данные между разными структурами.

У каждого объекта Index есть методы и свойства, которые нужны, чтобы узнавать значения.

Методы Index

Есть методы для получения информации об индексах из структуры данных. Например, idmin() и idmax() — структуры, возвращающие индексы с самым маленьким и большим значениями.

Индекс с повторяющимися метками

Пока что были только те случаи, когда у индексов одной структуры лишь одна, уникальная метка. Для большинства функций это обязательное условие, но не для структур данных pandas.

Определим, например, Series с повторяющимися метками.

Операции между структурами данных

Гибкие арифметические методы

Уже рассмотренные операции можно выполнять с помощью гибких арифметических методов:

ballmugpaperpenpencil
blue6.0NaNNaN6.0NaN
greenNaNNaNNaNNaNNaN
redNaNNaNNaNNaNNaN
white20.0NaNNaN20.0NaN
yellow19.0NaNNaN19.0NaN

Операции между Dataframe и Series

ballpenpencilpaper
red0123
blue4567
yellow891011
white12131415
ballpenpencilpaper
red0000
blue4444
yellow8888
white12121212

Источник

Документация по модулю Python Pandas

Модуль Python Pandas представляет собой модуль с открытым исходным кодом. Он имеет широкую сферу применения в области вычислений, анализа данных, статистики и т. д.

Начало работы

pandas series что это. Смотреть фото pandas series что это. Смотреть картинку pandas series что это. Картинка про pandas series что это. Фото pandas series что это
Прежде чем разобраться в функциях модуля Pandas, нам необходимо установить модуль (проверка совместимости версии Python с версией модуля, который вы хотите установить, с помощью официальной документации модуля Pandas).

Есть разные способы установить модуль Python Pandas. Один из самых простых способов — установить с помощью установщика пакетов Python, то есть PIP.

Введите следующую команду в командной строке:
pip install pandas
Чтобы добавить модуль Pandas и NumPy в ваш код, нам необходимо импортировать эти модули в наш код.

Pandas — структуры данных

Pandas работает со следующими структурами данных:

Эти структуры данных быстрее по сравнению с массивами NumPy.

1 Серия

Pandas Series — это одномерная структура, напоминающая массивы, содержащие однородные данные. Это линейная структура данных, в которой элементы хранятся в одном измерении.

Примечание. Размер структуры данных серии в Pandas является неизменным, т.е. однажды установленный, он не может быть изменен динамически. При этом значения и элементы в серии можно изменять.

Синтаксис:
pandas.Series(input_data, index, data_type, copy)

В приведенном выше фрагменте кода мы предоставили ввод с использованием массивов NumPy и установили значения индекса для входных данных.

Выход:
10 John
11 Bran
12 Sam
13 Peter
dtype: object

2 DataFrame

Модуль Python Pandas предоставляет DataFrame, который представляет собой двумерную структуру, напоминающую двумерные массивы. Здесь входные данные оформляются в виде строк и столбцов.

Примечание. Размер структуры данных DataFrame в Pandas можно изменять.

Синтаксис:
pandas.DataFrame(input_data, index_value, columns, data_type, copy)

В приведенном выше коде мы предоставили ввод с помощью списков, добавили метки: «Имя» и «Город» к столбцам и установили для них значения индекса.

Выход:
Name City
1 John Pune
2 Bran Mumbai
3 Peter Delhi

3 Panel

Модуль Python Pandas предлагает панель, которая представляет собой трехмерную структуру данных и содержит 3 оси для выполнения следующих функций:

Синтаксис:
pandas.Panel(input_data, items, major_axis, minor_axis, data_type, copy)

Импорт данных из файла CSV в DataFrame

Модуль DataFrame Python Pandas также может быть построен с использованием файлов CSV. Файл CSV — это в основном текстовый файл, в котором хранятся данные для каждой строки. Элементы разделяются запятой.

Метод read_csv (file_name) используется для чтения данных из файла CSV в DataFrame.

Синтаксис:
pandas.read_csv()
Пример:

Выход:
Name Age
0 John 21
1 Bran 22

Статистический анализ в Pandas

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

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

МетодDescription
count()Подсчитывает количество всех непустых наблюдений
sum()Возвращает сумму элементов данных.
mean()Возвращает среднее значение всех элементов данных.
median()Возвращает медианное значение всех элементов данных.
mode()Возвращает режим всех элементов данных
std()Возвращает стандартное отклонение всех элементов данных.
min()Возвращает минимальный элемент данных среди всех входных элементов.
max()Возвращает максимальный элемент данных среди всех входных элементов.
abs()Возвращает абсолютное значение.
prod()Возвращает произведение значений данных.
cumsum()Возвращает кумулятивную сумму значений данных.
cumprod()Возвращает совокупное произведение значений данных.
describe()Он отображает статистическую сводку всех записей за один снимок, т.е. (сумма, количество, мин, среднее и т. Д.)

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

Функция sum()

Как видно выше, функция sum() добавляет данные каждого столбца отдельно и добавляет строковые значения везде, где они есть.

функция mean()

Выход:
Marks 59.8
Roll_num 3.0
dtype: float64
Функция mean не будет воздействовать на строки, найденные в данных, в отличие от функции sum().

Источник

Нескучный Pandas: объекты Series и DataFrame. Построение Index

Содержание

Что такое Pandas DataFrame?

Объекты DataFrame — многомерные массивы с метками для строк и столбцов, а также зачастую с неоднородным типом данных и/или пропущенными данными.

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

Импорт библиотек NumPy и Pandas

Начнем наш сеанс программирования с обычных импортов библиотек NumPy એ и Pandas એ :

Объект Series библиотеки Pandas

Объект Series библиотеки Pandas — одномерный массив индексированных данных. Его можно создать из списка или массива следующим образом:

Результат:
pandas series что это. Смотреть фото pandas series что это. Смотреть картинку pandas series что это. Картинка про pandas series что это. Фото pandas series что это

Как мы видели из предыдущего результата, объект Series служит адаптером как для последовательности значений, так и последовательности индексов, к которым можно получить доступ посредством атрибутов values и index. Атрибут values представляет собой массив NumPy:

Index — массивоподобный объект типа pd.Index:

Результат:

Аналогично массивам библиотеки NumPy, к данным можно обращаться по соответствующему им индексу посредством нотации с использованием квадратных скобок языка Python:

Результат:

Однако объект Series библиотеки Pandas намного универсальнее и гибче, чем эмулируемый им одномерный массив библиотеки NumPy.

Объект Series как обобщенный массив NumPy

Может показаться, что объект Series и одномерный массив библиотеки NumPy взаимозаменяемы. Основное различие между ними — индекс. В то время как индекс массива NumPy, используемый для доступа к значениям, — целочисленный и описывается неявно, индекс объекта Series библиотеки Pandas описывается явно и связывается со значениями.

Явное описание индекса расширяет возможности объекта Series. Такой индекс не должен быть целым числом, а может состоять из значений любого нужного типа. Например, при желании мы можем использовать в качестве индекса строковые значения:

Результат:

При этом доступ к элементам работает обычным образом:

Результат:

Объект Series как специализированный словарь

Объект Series библиотеки Pandas можно рассматривать как специализированную разновидность словаря языка Python. Словарь — структура, задающая соответствие произвольных ключей набору произвольных значений, а объект Series — структура, задающая соответствие типизированных ключей набору типизированных значений.

Типизация важна: точно так же, как соответствующий типу специализированный код для массива библиотеки NumPy при выполнении определенных операций делает его эффективнее, чем стандартный список Python, информация о типе в объекте Series библиотеки Pandas делает его намного более эффективным для определенных операций, чем словари Python.

Можно сделать аналогию «объект Series — словарь» еще более наглядной, сконструировав объект Series непосредственно из словаря Python.

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

Результат:

Создание объектов Series

Мы уже изучили несколько способов создания объектов Series библиотеки Pandas с нуля.

Все они представляют собой различные варианты следующего синтаксиса Pandas Series (общий вид синтаксиса):

где index — необязательный аргумент, а data может быть одной из множества сущностей.

Например, аргумент data может быть списком или массивом NumPy. В этом случае index по умолчанию будет целочисленной последовательностью:

Результат:

Аргумент data может быть скалярным значением, которое будет повторено нужное количество раз для заполнения заданного индекса:

Результат:

Аргумент data может быть словарем, в котором index по умолчанию является отсортированными ключами этого словаря:

Результат:

В каждом случае индекс можно указать вручную, если необходимо получить другой результат:

Результат:

Обратите внимание, что объект Series заполняется только заданными явным образом ключами.

Объект DataFrame библиотеки Pandas

Следующая базовая структура библиотеки Pandas — объект DataFrame. Как и объект Series, объект DataFrame можно рассматривать или как обобщение массива NumPy, или как специализированную версию словаря Python. Изучим оба варианта.

DataFrame как обобщенный массив NumPy

Если объект Series — аналог одномерного массива с гибкими индексами, объект DataFrame — аналог двумерного массива с гибкими индексами строк и гибкими именами столбцов. Аналогично тому, что двумерный массив можно рассматривать как упорядоченную последовательность выровненных столбцов, объект DataFrame можно рассматривать как упорядоченную последовательность выровненных объектов Series. Под «выровненными» имеется в виду то, что они используют один и тот же индекс.

Чтобы продемонстрировать это, сначала создадим новый объект Series, содержащий площадь каждого из пяти упомянутых в предыдущем разделе штатов:

Результат:

Воспользовавшись объектом population класса Series, сконструируем на основе словаря единый двумерный объект, содержащий всю эту информацию:

Результат:

Аналогично объекту Series у объекта DataFrame имеется атрибут index, обеспечивающий доступ к меткам индекса. Еще у объекта DataFrame есть атрибут columns, представляющий собой содержащий метки столбцов объект Index.

Результат:

Таким образом, объект DataFrame можно рассматривать как обобщение двумерного массива NumPy, где как у строк, так и у столбцов есть обобщенные индексы для доступа к данным.

Объект DataFrame как специализированный словарь

DataFrame можно рассматривать как специализированный словарь. Если словарь задает соответствие ключей значениям, то DataFrame задает соответствие имени столбца объекту Series с данными этого столбца. Например, запрос данных по атрибуту ‘area’ приведет к тому, что будет возвращен объект Series, содержащий площади штатов:

Результат:

Создание объектов DataFrame

Существует множество способов создания объектов DataFrame библиотеки Pandas. Вот несколько примеров.

Из одного объекта Series

Объект DataFrame — набор объектов Series.

DataFrame, состоящий из одного столбца, можно создать на основе одного объекта Series:

Результат:

Из списка словарей

Любой список словарей можно преобразовать в объект DataFrame. Мы воспользуемся простым списковым включением для создания данных:

Результат:

Результат:

Из словаря объектов Series

Объект DataFrame также можно создать на основе словаря объектов Series (этот пример был приведен ранее):

Результат:

Из двумерного массива NumPy

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

Результат:

Из структурированного массива NumPy

Объект DataFrame библиотеки Pandas ведет себя во многом аналогично структурированному массиву библиотеки NumPy и может быть создан непосредственно из него:

Результат:

Объект Index библиотеки Pandas

Как объект Series, так и объект DataFrame содержат явный индекс, обеспечивающий возможность ссылаться на данные и модифицировать их.

Объект Index можно рассматривать или как неизменяемый массив (immutable array), или как упорядоченное множество (ordered set) (формально мультимножество, так как объекты Index могут содержать повторяющиеся значения). Из этих способов его представления следуют некоторые интересные возможности операций над объектами Index. В качестве простого примера создадим Index из списка целых чисел:

Результат:

Объект Index как неизменяемый массив

Объект Index во многом ведет себя аналогично массиву. Например, для извлечения из него значений или срезов можно использовать стандартную нотацию индексации языка Python. У объектов Index есть много атрибутов.

Результат:

Одно из различий между объектами Index и массивами NumPy — неизменяемость индексов, то есть их нельзя модифицировать стандартными средствами:

Результат:

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

Опубликовано Вадим В. Костерин

ст. преп. кафедры ЦЭиИТ. Автор более 130 научных и учебно-методических работ. Лауреат ВДНХ (серебряная медаль). Посмотреть больше записей

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *