2016-06-14 7 views
0

은 내가 다음 dataframe에서 credit을 정렬 할 것은 (() 나는 또한 일종의 시도했다) sort_values ​​() 함수를 사용하는 것입니다팬 어스 데이터 프레임을 어휘가 아닌 것으로 정렬하는 방법은 무엇입니까?

df.sort_values('credit', ascending=False, inplace=True) 

문제는 크레딧는 아래와 같이 분류되어 있는지 :

   i credit   m reg_date   b  id 
---------------------------------------------------------------------- 
238    0 4600000.00  0 2014-04-14  False 102214 
127    0 4600000.00  0 2014-12-30  False 159479 
13    0 16800000.00  0 2015-01-12  False 163503 
248    0 16720000.00  0 2012-11-11  False 5116 

오름차순은 False입니다. 따라서 4600000.00은 다른 크레딧보다 먼저 나타납니다. 그러나 이것은 내가 원하는 것이 아닙니다. 값을 기준으로 정렬하고 싶었습니다. 그래서 16800000.00 위의 샘플과 16720000.004600000.00 이전이어야합니다. 어떻게이 Dataframe을 어휘 적이 지 않은 것으로 정렬 하는가?

편집-1 :
데이터는 그 이상이며, 포함 할 수 있습니다

120    0 16708000.00  0 2013-12-17  False 51433 
248    0 16720000.00  0 2012-11-11  False 5116 
13    0 16800000.00  0 2015-01-12  False 163503 
21    0 4634000.00  0 2014-12-29  False 159239 
136    0 4650000.00  0 2012-11-07  False 4701 
..   ...   ...  ...   ...  ...  ... 
231    0 7715000.00  0 2014-02-15  False 83936 
182    0 7750000.00  0 2015-07-13  False 201584 

답변

1

입력 float 별도로 열을 정렬하고 원래의 인덱스

에게 슬라이스 인덱스를 사용할 수 귀하의 경우 :

import pandas as pd 
from StringIO import StringIO 

text = """136    0 4650000.00  0 2012-11-07  False 4701 
231    0 7715000.00  0 2014-02-15  False 83936 
13    0 16800000.00  0 2015-01-12  False 163503 
120    0 16708000.00  0 2013-12-17  False 51433 
248    0 16720000.00  0 2012-11-11  False 5116 
21    0 4634000.00  0 2014-12-29  False 159239 
182    0 7750000.00  0 2015-07-13  False 201584 
""" 

df = pd.read_csv(StringIO(text), delim_whitespace=True, 
       header=None, index_col=0, 
       names=['i', 'credit', 'm', 'reg_date', 'b', 'id']) 

print df.loc[df.credit.astype(float).sort_values(ascending=False).index] 

    i  credit m reg_date  b  id 
13 0 16800000.0 0 2015-01-12 False 163503 
248 0 16720000.0 0 2012-11-11 False 5116 
120 0 16708000.0 0 2013-12-17 False 51433 
182 0 7750000.0 0 2015-07-13 False 201584 
231 0 7715000.0 0 2014-02-15 False 83936 
136 0 4650000.0 0 2012-11-07 False 4701 
21 0 4634000.0 0 2014-12-29 False 159239 
+0

편집 된 게시물보기 – piRSquared

+0

그래서 문제는 컬럼의 유형입니까? 내가 맞습니까? – ALH

+1

거의 확실 – piRSquared