2017-08-27 27 views
1

請幫助我通過rank函數得到此所需的另一個線程輸出here。我試圖這樣df.domain.rank(ascending=0)但得到在浮置輸出和遞增由3.以浮點形式給出輸出的等級函數並增加3

Input.. 
      type domain 
      0 1  yahoo.com 
      1 1  google.com 
      2 0  google.com 
      3 0  aa.com 
      4 0  google.com 
      5 0  aa.com 
      6 1  abc.com 
      7 1  msn.com 
      8 1  abc.com 
      9 1  abc.com 

    Expected output 
      type domain 
     0 1  1 
     1 1  2 
     2 0  2 
     3 0  3 
     4 0  2 
     5 0  3 
     6 1  4 
     7 1  5 
     8 1  4 
     9 1  4 

My Attempt using rank function 

    >>> df.domain.rank(ascending=0) 

      0 1.0 
      1 4.0 
      2 4.0 
      3 9.5 
      4 4.0 
      5 9.5 
      6 7.0 
      7 2.0 
      8 7.0 
      9 7.0 
+0

此外,一些輸入和預期的輸出將會有所幫助。 –

+0

我試圖解決使用秩函數的https://stackoverflow.com/questions/45901248/convert-dataframe-columns-value-into-digital-number。 – PIG

+0

您的預期產出是多少? –

回答

1

IIUC,使用方法= '密':

df.domain.rank(method='dense') 

輸出:

0 5.0 
1 3.0 
2 3.0 
3 1.0 
4 3.0 
5 1.0 
6 2.0 
7 4.0 
8 2.0 
9 2.0 
Name: domain, dtype: float64 

或升序=假,

df.domain.rank(method='dense', ascending=False) 

Ou輸入:

0 1.0 
1 3.0 
2 3.0 
3 5.0 
4 3.0 
5 5.0 
6 4.0 
7 2.0 
8 4.0 
9 4.0 
Name: domain, dtype: float64