Рубрики
Без рубрики

Визуальное руководство по функции Pandas Map ()

Функция Pandas Map () используется для отображения каждого значения от объекта серии к другому значению с использованием словаря / функции / серии. Это удобная функция для отображения значений серии из одного домена в другой домен. Функция карты Pandas https://youtu.be/wkkwfcesk44 Давайте посмотрим на документацию функции карты, карта … Визуальное руководство по функции Pandas Map () Подробнее “

Автор оригинала: Priyatham.

Пандас карта () Функция используется для отображения каждого значения от объекта серии к другому значению с использованием словаря/функции/серии. Это удобная функция для отображения значений серии из одного домена в другой домен.

Давайте посмотрим на документацию карта функция,

  • MAP – это серийный метод – эксплуатируется сверху серии объекта.

В вышеизложенном, pandas.series.map принимает один основной аргумент, «arg».

Как упоминалось в параметрах выше, существует 3 различных типа возможных заполнителей для «arg». В простых они;

  • Словарь
  • Функция
  • Индексированная серия

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

Давайте создадим dataframe, которое мы можем использовать дальше в руководстве для изучения функции карты. Данные, имеющие данные, это информация о 4 человека;

>>> import pandas as pd
>>> df = pd.DataFrame(
...         {
...             'Name': ['Edward', 'Natalie', 'Chris M', 'Priyatham'],
...             'Sex' : ['M', 'F', 'M', 'M'],
...             'Age': [45, 35, 29, 26],
...             'weight(kgs)': [68.4, 58.2, 64.3, 53.1]
...         }
...     )

>>>df
        Name Sex  Age  weight(kgs)
0     Edward   M   45         68.4
1    Natalie   F   35         58.2
2    Chris M   M   29         64.3
3  Priyatham   M   26         53.1

Каждый столбец в DATAFRAME имеет серии типа. Итак, мы можем сопоставить словарь к столбцу в DataFrame, потому что карта представляет собой серийный метод.

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

>>> df['Sex']
0    M
1    F
2    M
3    M
Name: Sex, dtype: object

Все значения значений столбцов «Секс» являются одним из двух дискретных значений – «M» или «F». ” М “представляя мужчину и” F “, представляющих женщину. Мы не можем предоставить этот столбец создать модель обучения машины, как это не численное число. Таким образом, использование – это преобразование этого столбца в числовой тип. Этот вид данных называется «категориальные данные» в машинном обучении терминологии.

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

Код для этого есть,

>>> df['Sex'].map({'F':1, 'M':0})
0    0
1    1
2    0
3    0
Name: Sex, dtype: int64

Если вы соблюдаете вышеуказанную последовательную серию, «M» сопоставлен на 0 и «F» сопоставлен на 1 в соответствии с словарем.

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

Из возможных различных типов аргументов на функцию карты упомянутую выше Давайте будем использовать тип «Функция» в этом разделе. Давайте достигнем тех же результатов вышеизложенного Словарь картирования используя функцию Python.

Нам нужно создать функцию для нее сначала. Функция должна принять все значения в «половом» столбце один за другим и преобразовывать их в соответствующие целые числа.

>>> def sexInt(category):
...     if category=='M':
...         return 0
...     else:
...         return 1

Теперь давайте будем использовать вышеупомянутую функцию, чтобы сопоставить его в колонку «секс».

Код для этого есть,

>>> df['Sex'].map(sexInt)
0    0
1    1
2    0
3    0
Name: Sex, dtype: int64

Вышеуказанный результат такой же, как результат использования аргументарного аргумента. Мы можем проверить это по сравнению;

>>> df['Sex'].map({'M':0, 'F':1}) == df['Sex'].map(sexInt)
0    True
1    True
2    True
3    True
Name: Sex, dtype: bool

Из приведенного выше результата вы можете увидеть, что оба результата равны.

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

Из возможных различных типов аргументов на функцию карты упомянутую выше Давайте будем использовать тип «индексированной серии» в этом разделе. Люди в нашем DataFrame готовы предоставить нам их прозвище. Предположим, что прозвища предоставляются в объекте серии. Мы хотели бы сопоставить наше «имя» столбца DataFrame в псевдонимов. Условие;

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

Давайте построим столбец прозвища ниже с вышеупомянутым условием,

>>> nick_Name = pd.Series(['Ed', 'Nat', 'Chris', 'Priyatham'], index=df['Name'])
>>> nick_Name
Name
Edward              Ed
Natalie            Nat
Chris M          Chris
Priyatham    Priyatham
dtype: object

Давайте сопоставьте вышеупомянутую серию в столбцу «Имя» датафарама;

Код для этого есть,

>>> df['Name'].map(nick_Name)
0           Ed
1          Nat
2        Chris
3    Priyatham
Name: Name, dtype: object
  • Основная точка наблюдения при применении функции карты – это индекс результирующего индекса серии равен индексу вызывающего абонента. Это важно, потому что мы можем добавить результирующую серию для DataFrame в качестве столбца.

Добавим результируемый серию в виде столбца «Nick_Name» в DataFrame,

>>> df['nick_Name'] = df['Name'].map(nick_Name)
>>> df
        Name Sex  Age  weight(kgs)  nick_Name
0     Edward   M   45         68.4         Ed
1    Natalie   F   35         58.2        Nat
2    Chris M   M   29         64.3      Chris
3  Priyatham   M   26         53.1  Priyatham

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

Каждый столбец в DataFrame представляет собой серию, и карта представляет собой серийный метод. Итак, мы видели только отображение одного столбца в вышеуказанных разделах, используя функцию карты Pandas. Но в Pands есть хаки, чтобы сделать функцию карты для нескольких столбцов. Несколько столбцов объединены вместе, образуют DataFrame. Есть процесс, называемый укладкой в пандах. «Укладка» создает серию серий (столбцов) из датафарама. Здесь все столбцы DataFrame сложены как серии для формирования другой серии.

Мы закодировали значения «M» и «F» до 0 и 1 в предыдущем разделе. При строительстве моделей машинного обучения есть шансы, где 1 интерпретируется как более 0 при выполнении расчетов. Но здесь они 2 разные категории и не сопоставимы.

Итак, давайте храним данные по-другому в нашем DataFrame. Давайте посвятить отдельные столбцы для мужчин («М») и женщина («F»). И мы можем заполнить «да» и «нет» для человека, основанного на их пола. Это представляет избыточность данных, но решает нашу обсужденную проблему выше.

Это можно сделать следующим кодом,

>>> df['Male'] = ['Yes', 'No', 'Yes', 'Yes']
>>> df['Female'] = ['No', 'Yes', 'No', 'No']
>>> df
        Name Sex  Age  weight(kgs)  nick_Name Male Female
0     Edward   M   45         68.4         Ed  Yes     No
1    Natalie   F   35         58.2        Nat   No    Yes
2    Chris M   M   29         64.3      Chris  Yes     No
3  Priyatham   M   26         53.1  Priyatham  Yes     No

Теперь мы рассмотрим 2 колонны «мужчины» и «женщины» к численным значениям. Для этого мы должны взять подмножество данных DataFrame.

>>> df_subset = df[['Male', 'Female']]
>>> df_subset
  Male Female
0  Yes     No
1   No    Yes
2  Yes     No
3  Yes     No

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

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

>>> df_subset.stack()
0  Male      Yes
   Female     No
1  Male       No
   Female    Yes
2  Male      Yes
   Female     No
3  Male      Yes
   Female     No
dtype: object

>>> df_subset.stack().map({'Yes':1, 'No':0})
0  Male      1
   Female    0
1  Male      0
   Female    1
2  Male      1
   Female    0
3  Male      1
   Female    0
dtype: int64

>>> df_subset.stack().map({'Yes':1, 'No':0}).unstack()
   Male  Female
0     1       0
1     0       1
2     1       0
3     1       0

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

В машинном обучении есть процедуры для преобразования категорической переменной колонны на несколько дискретных числовых столбцов. Такой процесс кодирования называется Одно- горячая кодировка в машинном обучении терминологии.

Мы обсудили панды Применить подробно функционировать в другой Учебное пособие Отказ карта и Применить Функции имеют некоторые основные различия между ними. Они есть;

  • Первая разница есть;
    • карта это только серия методом.
    • Применить является как серия, так и датафарам.
  • Вторая разница есть;
    • карта Принимает Dict/Series/Функция как аргумент
    • Применить принимает единственную функцию в качестве аргумента
  • Третье различие;
    • карта Элементная операция по серии
    • Применить используется для сложных элементных операций на серии и DataFrame
  • Четвертое значение:
    • карта используется в основном, чтобы значения отображения с помощью словаря
    • Применить используется для применения функций, которые недоступны в качестве векторизованных процедур агрегации на DataFrames

Функция карты используется в основном для отображения значений серии, используя словарь. Всякий раз, когда вы находите какие-либо категорические данные, вы можете подумать о методе карты для преобразования их в числовые значения. Если вам понравилось это руководство по карта () Функция и как обучение на основе викторины, пожалуйста, подумайте о том, чтобы попробовать прочитать наш Кофе-брейк Пандас книга.

Оригинал: “https://blog.finxter.com/a-visual-guide-to-pandas-map-function/”