目的:一般情况下,我们拿到的数据有自变量部分和因变量部分,而因变量部分有时候不是有数字形式表示,而是有字符串表示,比如身高的因变量为lowest,lower,low,high,higher,highest。

这是在进行机器学习模型训练时,需要将其转化为数字形式,共有以下两种操作可以实现。

方法1: 利用pandas的Categorical方法的codes属性

方法2:利用sklearn包的preprocessing模块的LabelEncoder类

代码实现如下:

# -*- coding:utf-8 -*-
import pandas as pd
import numpy as np
import sys, os, re
from sklearn.preprocessing import LabelEncoder

labels = ["LUSC", "LUAD", "Normal"] * 10
samples = np.random.randn(len(labels), 4)

data = pd.DataFrame(data = samples, columns = ["feature1", "feature2", "feature3", "feature4"])
data["label"] = labels
print("原始数据\n", data.head())
y1 = pd.Categorical(data.label).codes # 方法1:
y2 = LabelEncoder().fit_transform(data.label)# 方法2:
print("pandas的Categorical方法的codes属性:\n", y1)
print("sklearn.preprocessing的LabelEncoder类: \n", y2)
data.label = y1 # data.label = y2
print("转换字符标签为数字标签后的数据:\n", data.head())
Categorical

python-机器学习-数据标签转化_原始数据