给出如下数据框:
'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或标准库。
答案 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