2014-02-12 42 views
0

這樣如何獲得無差距的熊貓列的排名值?

import pandas 
df = pandas.DataFrame({'col':['bbb','aaa','aaa','ccc']}) 
print df 
print '-------------' 
df['ranked'] = df['col'].rank(method='min') 
print df 

我得到:

col 
0 bbb 
1 aaa 
2 aaa 
3 ccc 
------------- 
    col ranked 
0 bbb  3 
1 aaa  1 
2 aaa  1 
3 ccc  4 

我想有:

col 
0 bbb 
1 aaa 
2 aaa 
3 ccc 
------------- 
    col ranked 
0 bbb  2 
1 aaa  1 
2 aaa  1 
3 ccc  3 

有誰知道如何得到它?

回答

1

試試這個:

import pandas 
df = pandas.DataFrame({'col':['bbb','aaa','aaa','ccc']}) 
print df 
print '-------------' 

df2 = df.drop_duplicates() 
df2['ranked'] = df2.rank(method='min') 
print df.merge(df2, on='col') 

輸出:

col 
0 bbb 
1 aaa 
2 aaa 
3 ccc 
------------- 
    col ranked 
0 bbb  2 
1 aaa  1 
2 aaa  1 
3 ccc  3 
+0

不幸它不適用於'df = pandas.DataFrame({'col':['bbb','aaa','ccc','aaa']})'。 – Roman

+0

@羅曼,哦!是的,你有一個點,我用另一種方法更新了我的答案,希望它有幫助 –