2014-01-10 75 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]