2017-02-19 34 views
3

我有兩列的數據幀:熊貓地圖串爲int基於值在一列

state total_sales 
AL  16714 
AR  6498 
AZ  107296 
CA  33717 

現在我想在狀態列中的串映射來自1到int到N(其中N是no行,這裏4)基於total_sales中值的遞增順序。結果應該存儲在另一列(比如標籤)中。也就是說,想要這樣的結果:

state total_sales label 
AL  16714   3 
AR  6498   4 
AZ  107296  1 
CA  33717   2 

請建議一個向量化的實現。

+1

請出示你的一些努力 – ZdaR

+0

@ZdaR:用for循環實現,但閱讀不建議循環的dataframes。 –

回答

4

您可以使用rank採用鑄造到int

df['label'] = df['total_sales'].rank(method='dense', ascending=False).astype(int) 
print (df) 
    state total_sales label 
0 AL  16714  3 
1 AR   6498  4 
2 AZ  107296  1 
3 CA  33717  2