将pandas系列转换为整数

时间:2016-03-02 15:39:55

标签: python pandas

给出如下数据框:

'John', 0.25
'Mary', 0.2
'Adam', 0.1
'Andrew', 0.6

我想为某个系列中的每个类别生成一个唯一的整数。例如,在上面的例子中,输出可能是这样的

0, 0.25
1, 0.2
2, 0.1
3, 0.6

可能仅使用pandas或标准库。

1 个答案:

答案 0 :(得分:1)

我认为您可以使用factorize之类的:

print df
          a     b
0    'John'  0.25
1    'Mary'  0.20
2    'Mary'  0.20
3    'Adam'  0.10
4    'Adam'  0.10
5    'Adam'  0.10
6  'Andrew'  0.60

print pd.factorize(df.a)
(array([0, 1, 1, 2, 2, 2, 3]), 
 Index([u''John'', u''Mary'', u''Adam'', u''Andrew''], dtype='object'))

df['a'] = pd.factorize(df.a)[0]
print df

   a     b
0  0  0.25
1  1  0.20
2  1  0.20
3  2  0.10
4  2  0.10
5  2  0.10
6  3  0.60