2014-01-10 83 views
3

我已经问了这个问题的R,但我现在试图做它在熊猫。我试图用熊猫将分类变量重新编码为整数。鉴于:在熊猫中重新编码变量整数

group 
005j   
005j   
0k16   
0fff  
0fff 

我想获得一系列代表相同的分组增加整数:

group intCode 
005j  1 
005j  1 
0k16  2 
0fff  3 
0fff  3 

回答

7
In [10]: df['intCode'] = pd.Categorical.from_array(df.group).labels 

In [11]: df 
Out[11]: 
    group intCode 
0 005j  0 
1 005j  0 
2 0k16  2 
3 0fff  1 
4 0fff  1 
1

你可以得到独特的价值观

>>> df = pd.read_clipboard() 
>>> groups = df['group'].unique() 

指数它们

>>> groups = pd.DataFrame(groups, columns=['group']).reset_index() 

并合并(加入1从1开始而不是从0开始):

>>> groups['index'] += 1 
>>> df.merge(groups) 
    group index 
0 005j  1 
1 005j  1 
2 0k16  2 
3 0fff  3 
4 0fff  3 

[5 rows x 2 columns]