使用 Python 或 Sklearn 中的整数值对具有字符串值的列变量进行编码

Cha*_*dra 3 python nlp scikit-learn

如何通过整数值对数据表中字符串类型的列值进行编码。例如,我有两个特征变量:颜色(可能的字符串值 R、G 和 B)和技能(可能的字符串值 C++、Java、SQL 和 Python)。给定的数据表有两列 -

Color' -> R G B B G R B G G R G  ;
Skills' -> Java , C++, SQL, Java, Python, Python, SQL, C++, Java, SQL, Java.
Run Code Online (Sandbox Code Playgroud)

我想知道哪个 sklearn 函数/方法将在两列上方转换,如 R=0, G=1 和 B=2 以及 C++ =0, Java=1, SQL=2 和 Python=3 :

Color: 0, 1, 2, 2, 1, 0, 2, 1, 1, 0, 1
Skills:  1, 0, 2, 1, 3, 3, 2, 0, 1, 2, 1
Run Code Online (Sandbox Code Playgroud)

请让我知道如何做到这一点??

小智 5

使用 Sckit-learn LabelEncoder() 方法

import pandas as pd
from sklearn.preprocessing import LabelEncoder

df = pd.DataFrame({
'colors':  ["R" ,"G", "B" ,"B" ,"G" ,"R" ,"B" ,"G" ,"G" ,"R" ,"G" ],
'skills':  ["Java" , "C++", "SQL", "Java", "Python", "Python", "SQL","C++", "Java", "SQL", "Java"]
})

def encode_df(dataframe):
    le = LabelEncoder()
    for column in dataframe.columns:
        dataframe[column] = le.fit_transform(dataframe[column])
    return dataframe

#encode the dataframe
encode_df(df)
Run Code Online (Sandbox Code Playgroud)