Существует несколько способов преобразования категориальных данных в числовые с использованием панд и sklearn:
- pandas.get_dummies () (одна горячая кодировка)
Пример:
import numpy as np
import pandas as pd
df = pd.DataFrame([['BMW', '1 Series M', 2011, 19, 3916, 46135],
['BMW', '1 Series', 2011,19, 3916, 40650],
['BMW', '1 Series', 2011,20, 3916, 36350],
['Acura', 'ZDX', 2012, 16, 204, 50620],
['Acura', 'ZDX', 2013, 16, 204, 50920],
['Lincoln', 'Zephyr', 2006, 17, 61, 28995]]) #Sample dataframe
pd.get_dummies(df, columns = [0,1,2]) #Dummies of 1st,2nd and 3rd column
выход
2. LabelEncoder
* +1025 * Пример
import numpy as np
import pandas as pd
from sklearn.preprocessing import LabelEncoder
df = pd.DataFrame([['BMW', '1 Series M', 2011, 19, 3916, 46135],
['BMW', '1 Series', 2011,19, 3916, 40650],
['BMW', '1 Series', 2011,20, 3916, 36350],
['Acura', 'ZDX', 2012, 16, 204, 50620],
['Acura', 'ZDX', 2013, 16, 204, 50920],
['Lincoln', 'Zephyr', 2006, 17, 61, 28995]]) #Sample dataframe
df[[0,1,2]].apply(LabelEncoder().fit_transform)
output (он даст только преобразованные столбцы, которые необходимо объединить с исходным кадром данных)
df.loc[0:,0:2] = df[[0,1,2]].apply(LabelEncoder().fit_transform)
#puts column back into dataframe
Выход