如何将字符串数据分类为整数?

时间:2019-05-08 18:07:54

标签: python pandas dataframe machine-learning classification

我需要对数据集要素的字符串值进行分类,以便可以将其进一步用于其他用途,例如预测或绘图。

如何转换?

我找到了这个解决方案,但是在这里,我必须为该功能的每个唯一值手动键入代码。对于2-3个唯一值,没关系,但是我有一个具有50多个国家/地区唯一值的功能,我不能为每个国家/地区编写代码。

def sex_class(x):
    if x == 'male':
        return 1
    else:
        return 0

这会将特征-性别中的男性值更改为1,将女性值更改为0。

3 个答案:

答案 0 :(得分:2)

您可以使用scikit-learn LabelEncoder

#given a list containing all possible labels sex_classes = ['male', 'female'] from sklearn import preprocessing le = preprocessing.LabelEncoder() le.fit(sex_classes)

这将为给定列表中的所有唯一值分配标签。您可以将此标签编码器对象另存为泡菜文件,以供以后使用。

答案 1 :(得分:0)

您可以改用字典。

sex_class = {'male': 1, 'female': 0}

答案 2 :(得分:0)

rankpd.factorize

df['ID_int'] = df['id'].rank(method='dense').astype(int)
df['ID_int2'] = pd.factorize(df['id'])[0]

输出:

  id  ID_int  ID_int2
0  a       2        0
1  b       3        1
2  c       4        2
3  a       2        0
4  b       3        1
5  c       4        2
6  A       1        3
7  b       3        1

标签不同,但是一致。