Pandas: як використовувати factorize() для кодування рядків як чисел
Функцію pandas factorize() можна використовувати для кодування рядків як числових значень.
Ви можете використовувати такі методи, щоб застосувати функцію factorize() до стовпців pandas DataFrame:
Спосіб 1. Розкладіть стовпець на множники
df[' col1 '] = pd. factorize (df[' col '])[0]
Спосіб 2. Факторні стовпці
df[[' col1 ', ' col3 ']] = df[[' col1 ', ' col3 ']]. apply ( lambda x: pd.factorize (x)[ 0 ])
Спосіб 3: Розкладіть усі стовпці на множники
df = df. apply ( lambda x: pd.factorize (x)[ 0 ])
У наступному прикладі показано, як використовувати кожен метод із такими pandas DataFrame:
import pandas as pd #createDataFrame df = pd. DataFrame ({' conf ': ['West', 'West', 'East', 'East'], ' team ': ['A', 'B', 'C', 'D'], ' position ': ['Guard', 'Forward', 'Guard', 'Center'] }) #view DataFrame df conf team position 0 West A Guard 1 West B Forward 2 East C Guard 3 East D Center
Приклад 1: Розкладіть стовпець на множники
Наступний код показує, як розкласти стовпець у DataFrame:
#factorize the conf column only df[' conf '] = pd. factorize (df[' conf '])[ 0 ] #view updated DataFrame df conf team position 0 0 A Guard 1 0 B Forward 2 1 C Guard 3 1 D Center
Зауважте, що тільки стовпець ‘conf’ був розрахований на множники.
Кожне значення, яке було «Захід», тепер дорівнює 0, а кожне значення, яке було «Схід», тепер дорівнює 1.
Приклад 2: Стовпці для певних факторів
У наведеному нижче коді показано, як розкласти конкретні стовпці в DataFrame:
#factorize conf and team columns only df[[' conf ', ' team ']] = df[[' conf ', ' team ']]. apply ( lambda x: pd.factorize (x)[ 0 ]) #view updated DataFrame df conf team position 0 0 0 Guard 1 0 1 Forward 2 1 2 Guard 3 1 3 Center
Зверніть увагу, що стовпці «conf» і «team» були розраховані на множники.
Приклад 3: розкласти всі стовпці на множники
Наступний код показує, як розкласти всі стовпці в DataFrame:
#factorize all columns df = df. apply ( lambda x: pd.factorize (x)[ 0 ]) #view updated DataFrame df conf team position 0 0 0 0 1 0 1 1 2 1 2 0 3 1 3 2
Зауважте, що всі стовпці розкладено на множники.
Додаткові ресурси
У наступних посібниках пояснюється, як виконувати інші типові операції в pandas:
Як перетворити стовпці Pandas DataFrame на рядки
Як перетворити категоріальну змінну на числову в Pandas
Як перетворити стовпці Pandas DataFrame на ціле число