我们如何将列中的分类数据转换为编号数据

时间:2018-04-03 19:20:09

标签: python pandas sklearn-pandas

让我们举一个例子,假设我的表值为:

受试者

英语

数学

科学

英语

科学

如何将这些字符串数据转换为编号数据,如下表所示。

受试者

1

2

3

1

3

1 个答案:

答案 0 :(得分:0)

假设您的原始数据框如下所示:

>>> df
      subjects
0      english
1  mathematics
2      science
3      english
4      science

您可以使用pd.factorize

df['factor'] = pd.factorize(df['subjects'])[0]+1

>>> df
      subjects  factor
0      english       1
1  mathematics       2
2      science       3
3      english       1
4      science       3

或者,如果您只想替换subjects中的值而不是创建新列factor,请执行以下操作:

df['subjects'] = pd.factorize(df['subjects'])[0]+1

请注意,+1只是为了让您的确切输出范围为1到3.如果没有它,您仍然会获得有效的类别,范围从0到2。