pandas loc что это

Функция Python loc () – Извлечение значений из набора данных

Эй, читатели! В этой статье мы подробно остановимся на функционировании функции Python loc (). Итак, давайте начнем!!

Эй, читатели! В этой статье мы подробно остановимся на функционировании функции Python loc ()|/. Итак, давайте начнем!!

Работа функции Python loc()

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

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

Это происходит, когда на сцену выходит функция Python loc ()|/. Функция lock() помогает нам легко извлекать значения данных из набора данных.

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

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

Метка индекса может быть одним из следующих значений :

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

Давайте теперь сосредоточимся на реализации того же самого, используя приведенные ниже примеры.

Примеры функции Python loc()

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

Фрейм данных :

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

Извлечение одной строки из фрейма данных

Итак, используя приведенную выше команду, мы извлекли все значения данных, связанные с меткой индекса “Python”.

Извлечение нескольких строк из фрейма данных

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

Извлеките диапазон строк с помощью Python loc()

Здесь мы использовали объект slice, как и в случае с метками, для отображения строк и столбцов, связанных с метками от “Python” до “C”.

Вывод

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

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

Источник

Введение в pandas: анализ данных на Python

pandas это высокоуровневая Python библиотека для анализа данных. Почему я её называю высокоуровневой, потому что построена она поверх более низкоуровневой библиотеки NumPy (написана на Си), что является большим плюсом в производительности. В экосистеме Python, pandas является наиболее продвинутой и быстроразвивающейся библиотекой для обработки и анализа данных. В своей работе мне приходится пользоваться ею практически каждый день, поэтому я пишу эту краткую заметку для того, чтобы в будущем ссылаться к ней, если вдруг что-то забуду. Также надеюсь, что читателям блога заметка поможет в решении их собственных задач с помощью pandas, и послужит небольшим введением в возможности этой библиотеки.

DataFrame и Series

Чтобы эффективно работать с pandas, необходимо освоить самые главные структуры данных библиотеки: DataFrame и Series. Без понимания что они из себя представляют, невозможно в дальнейшем проводить качественный анализ.

Series

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

В строковом представлении объекта Series, индекс находится слева, а сам элемент справа. Если индекс явно не задан, то pandas автоматически создаёт RangeIndex от 0 до N-1, где N общее количество элементов. Также стоит обратить, что у Series есть тип хранимых элементов, в нашем случае это int64, т.к. мы передали целочисленные значения.

У объекта Series есть атрибуты через которые можно получить список элементов и индексы, это values и index соответственно.

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

Индексы можно задавать явно:

Делать выборку по нескольким индексам и осуществлять групповое присваивание:

Фильтровать Series как душе заблагорассудится, а также применять математические операции и многое другое:

Если Series напоминает нам словарь, где ключом является индекс, а значением сам элемент, то можно сделать так:

У объекта Series и его индекса есть атрибут name, задающий имя объекту и индексу соответственно.

Индекс можно поменять «на лету», присвоив список атрибуту index объекта Series

Имейте в виду, что список с индексами по длине должен совпадать с количеством элементов в Series.

DataFrame

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

DataFrame проще всего сконструировать на примере питоновского словаря:

Чтобы убедиться, что столбец в DataFrame это Series, извлекаем любой:

Объект DataFrame имеет 2 индекса: по строкам и по столбцам. Если индекс по строкам явно не задан (например, колонка по которой нужно их строить), то pandas задаёт целочисленный индекс RangeIndex от 0 до N-1, где N это количество строк в таблице.

В таблице у нас 4 элемента от 0 до 3.

Доступ по индексу в DataFrame

Индекс по строкам можно задать разными способами, например, при формировании самого объекта DataFrame или «на лету»:

Доступ к строкам по индексу возможен несколькими способами:

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

Фильтровать DataFrame с помощью т.н. булевых массивов:

Кстати, к столбцам можно обращаться, используя атрибут или нотацию словарей Python, т.е. df.population и df[‘population’] это одно и то же.

Сбросить индексы можно вот так:

pandas при операциях над DataFrame, возвращает новый объект DataFrame.

Добавим новый столбец, в котором население (в миллионах) поделим на площадь страны, получив тем самым плотность:

Не нравится новый столбец? Не проблема, удалим его:

Особо ленивые могут просто написать del df[‘density’].

Переименовывать столбцы нужно через метод rename:

В этом примере перед тем как переименовать столбец Country Code, убедитесь, что с него сброшен индекс, иначе не будет никакого эффекта.

Чтение и запись данных

pandas поддерживает все самые популярные форматы хранения данных: csv, excel, sql, буфер обмена, html и многое другое:

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

Чаще всего приходится работать с csv-файлами. Например, чтобы сохранить наш DataFrame со странами, достаточно написать:

Функции to_csv ещё передаются различные аргументы (например, символ разделителя между колонками) о которых подробнее можно узнать в официальной документации.

Считать данные из csv-файла и превратить в DataFrame можно функцией read_csv.

Аргумент sep указывает разделитесь столбцов. Существует ещё масса способов сформировать DataFrame из различных источников, но наиболее часто используют CSV, Excel и SQL. Например, с помощью функции read_sql, pandas может выполнить SQL запрос и на основе ответа от базы данных сформировать необходимый DataFrame. За более подробной информацией стоит обратиться к официальной документации.

Группировка и агрегирование в pandas

Необходимо подсчитать, сколько женщин и мужчин выжило, а сколько нет. В этом нам поможет метод .groupby.

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

Сводные таблицы в pandas

В качестве индекса теперь у нас будет пол человека, колонками станут значения из PClass, функцией агрегирования будет count (подсчёт количества записей) по колонке Name.

Анализ временных рядов

В pandas очень удобно анализировать временные ряды. В качестве показательного примера я буду использовать цену на акции корпорации Apple за 5 лет по дням. Файл с данными можно скачать тут.

Здесь мы формируем DataFrame с DatetimeIndex по колонке Date и сортируем новый индекс в правильном порядке для работы с выборками. Если колонка имеет формат даты и времени отличный от ISO8601, то для правильного перевода строки в нужный тип, можно использовать метод pandas.to_datetime.

Давайте теперь узнаем среднюю цену акции (mean) на закрытии (Close):

А если взять промежуток с февраля 2012 по февраль 2015 и посчитать среднее:

А что если нам нужно узнать среднюю цену закрытия по неделям?!

Resampling мощный инструмент при работе с временными рядами (time series), помогающий переформировать выборку так, как удобно вам. Метод resample первым аргументом принимает строку rule. Все доступные значения можно найти в документации.

Визуализация данных в pandas

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

Берём цену закрытия в промежутке между 2012 и 2017.

И видим вот такую картину:

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

По оси X, если не задано явно, всегда будет индекс. По оси Y в нашем случае цена закрытия. Если внимательно посмотреть, то в 2014 году цена на акцию резко упала, это событие было связано с тем, что Apple проводила сплит 7 к 1. Так мало кода и уже более-менее наглядный анализ 😉

Эта заметка демонстрирует лишь малую часть возможностей pandas. Со своей стороны я постараюсь по мере своих сил обновлять и дополнять её.

Полезные ссылки

💌 Присоединяйтесь к рассылке

Понравился контент? Пожалуйста, подпишись на рассылку.

Источник

pandas.DataFrame.locВ¶

Access a group of rows and columns by label(s) or a boolean array.

.loc[] is primarily label based, but may also be used with a boolean array.

Allowed inputs are:

Note that contrary to usual python slices, both the start and the stop are included

An alignable boolean Series. The index of the key will be aligned before masking.

An alignable Index. The Index of the returned selection will be the input.

A callable function with one argument (the calling Series or DataFrame) and that returns valid output for indexing (one of the above)

If any items are not found.

If an indexed key is passed and its index is unalignable to the frame index.

Access a single value for a row/column label pair.

Access group of rows and columns by integer position(s).

Returns a cross-section (row(s) or column(s)) from the Series/DataFrame.

Access group of values using labels.

Getting values

Single label. Note this returns the row as a Series.

List of labels. Note using [[]] returns a DataFrame.

Single label for row and column

Slice with labels for row and single label for column. As mentioned above, note that both the start and stop of the slice are included.

Boolean list with the same length as the row axis

Alignable boolean Series:

Index (same behavior as df.reindex )

Conditional that returns a boolean Series

Conditional that returns a boolean Series with column labels specified

Callable that returns a boolean Series

Setting values

Set value for all items matching the list of labels

Set value for an entire row

Set value for an entire column

Set value for rows matching callable condition

Getting values on a DataFrame with an index that has integer labels

Another example using integers for the index

Slice with integer labels for rows. As mentioned above, note that both the start and stop of the slice are included.

Getting values with a MultiIndex

A number of examples using a DataFrame with a MultiIndex

Single label. Note this returns a DataFrame with a single index.

Single index tuple. Note this returns a Series.

Single label for row and column. Similar to passing in a tuple, this returns a Series.

Single tuple. Note using [[]] returns a DataFrame.

Single tuple for the index with a single label for the column

Источник

pandas.DataFrame.locВ¶

Access a group of rows and columns by label(s) or a boolean array.

.loc[] is primarily label based, but may also be used with a boolean array.

Allowed inputs are:

Note that contrary to usual python slices, both the start and the stop are included

An alignable boolean Series. The index of the key will be aligned before masking.

An alignable Index. The Index of the returned selection will be the input.

A callable function with one argument (the calling Series or DataFrame) and that returns valid output for indexing (one of the above)

If any items are not found.

If an indexed key is passed and its index is unalignable to the frame index.

Access a single value for a row/column label pair.

Access group of rows and columns by integer position(s).

Returns a cross-section (row(s) or column(s)) from the Series/DataFrame.

Access group of values using labels.

Getting values

Single label. Note this returns the row as a Series.

List of labels. Note using [[]] returns a DataFrame.

Single label for row and column

Slice with labels for row and single label for column. As mentioned above, note that both the start and stop of the slice are included.

Boolean list with the same length as the row axis

Alignable boolean Series:

Index (same behavior as df.reindex )

Conditional that returns a boolean Series

Conditional that returns a boolean Series with column labels specified

Callable that returns a boolean Series

Setting values

Set value for all items matching the list of labels

Set value for an entire row

Set value for an entire column

Set value for rows matching callable condition

Getting values on a DataFrame with an index that has integer labels

Another example using integers for the index

Slice with integer labels for rows. As mentioned above, note that both the start and stop of the slice are included.

Getting values with a MultiIndex

A number of examples using a DataFrame with a MultiIndex

Single label. Note this returns a DataFrame with a single index.

Single index tuple. Note this returns a Series.

Single label for row and column. Similar to passing in a tuple, this returns a Series.

Single tuple. Note using [[]] returns a DataFrame.

Single tuple for the index with a single label for the column

Источник

pandas.DataFrame.locВ¶

Access a group of rows and columns by label(s) or a boolean array.

.loc[] is primarily label based, but may also be used with a boolean array.

Allowed inputs are:

Note that contrary to usual python slices, both the start and the stop are included

An alignable boolean Series. The index of the key will be aligned before masking.

An alignable Index. The Index of the returned selection will be the input.

A callable function with one argument (the calling Series or DataFrame) and that returns valid output for indexing (one of the above)

If any items are not found.

If an indexed key is passed and its index is unalignable to the frame index.

Access a single value for a row/column label pair.

Access group of rows and columns by integer position(s).

Returns a cross-section (row(s) or column(s)) from the Series/DataFrame.

Access group of values using labels.

Getting values

Single label. Note this returns the row as a Series.

List of labels. Note using [[]] returns a DataFrame.

Single label for row and column

Slice with labels for row and single label for column. As mentioned above, note that both the start and stop of the slice are included.

Boolean list with the same length as the row axis

Alignable boolean Series:

Index (same behavior as df.reindex )

Conditional that returns a boolean Series

Conditional that returns a boolean Series with column labels specified

Callable that returns a boolean Series

Setting values

Set value for all items matching the list of labels

Set value for an entire row

Set value for an entire column

Set value for rows matching callable condition

Getting values on a DataFrame with an index that has integer labels

Another example using integers for the index

Slice with integer labels for rows. As mentioned above, note that both the start and stop of the slice are included.

Getting values with a MultiIndex

A number of examples using a DataFrame with a MultiIndex

Single label. Note this returns a DataFrame with a single index.

Single index tuple. Note this returns a Series.

Single label for row and column. Similar to passing in a tuple, this returns a Series.

Single tuple. Note using [[]] returns a DataFrame.

Single tuple for the index with a single label for the column

Источник

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

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