在Python或Sklearn中用整数值对列变量进行字符串编码

在Python或Sklearn中用整数值对列变量进行字符串编码,python,nlp,scikit-learn,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. < P>我想知道哪一个SkLead函数/方法将在两个列上转换为R=0,G

如何用整数值对数据表中字符串类型的列值进行编码。例如,我有两个特征变量:颜色(可能的字符串值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.
< P>我想知道哪一个SkLead函数/方法将在两个列上转换为R=0,G=1,B=2,并且C++=0,java=1,SQL=2,Python=3:< /P>
Color: 0, 1, 2, 2, 1, 0, 2, 1, 1, 0, 1
Skills:  1, 0, 2, 1, 3, 3, 2, 0, 1, 2, 1

请告诉我如何做???

使用Sckit学习LabelEncoder()方法


您使用什么类型的对象来保存数据?请给我们看给定的代码。我可以使用np.array或dataframe来保存数据。然而,我可以自由地使用任何类型的对象,只要我可以存储各种样本(行)的特征变量(列)数据。它可以更具体地说是一个列表……它工作得很好。一个观察结果是,它对NaN不起作用……但如果它的元素为空,它就会起作用。
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)