2016-10-18 22 views
0

한다고 가정 우리가 dataframe 다음 한 최대 값을 기준으로 정렬 열 : 여기팬더 :

A B C D 

1 5 16 1 
5 30 45 10 
2 40 60 5 
4 15 40 7 

, 우리는 최대 값에 따라 열을 정렬 할 필요가있다. 따라서, 열 같이 분류한다 :

C B D A 

맥스 (C)가 있기 때문에 = 60 맥스 (B) = 40, 맥스 (D) = 10, 맥스 (A) = 5.

이 작업을 자동화하는 가장 좋은 방법은 무엇입니까?

답변

2

당신은 df.max의 결과를 정렬하고, DF 인덱싱이를 사용할 수 있습니다

In [64]: 
df.ix[:, df.max().sort_values(ascending=False).index] 

Out[64]: 
    C B D A 
0 16 5 1 1 
1 45 30 10 5 
2 60 40 5 2 
3 40 15 7 4 

위를 분해 :

In [66]: 
df.max() 

Out[66]: 
A  5 
B 40 
C 60 
D 10 
dtype: int64 

In [67]: 
df.max().sort_values(ascending=False) 

Out[67]: 
C 60 
B 40 
D 10 
A  5 
dtype: int64 
+0

좋은 소식은 참으로 낮은 사람을 정렬 것입니다을 뒤로. 문제는 C가 더 많은 시간을 보여줍니다. 즉 C C C C C C ... C B D A – RPacker

+0

죄송합니다. 여기에 원하는 결과가 무엇입니까? 행 정렬 방식으로 값을 정렬하고 싶습니까? 그렇다면 이것은 당신이 묻는 것에 대해 명확하지 않고 다르다 – EdChum

+0

df.max(). sort_values ​​(오름차순 = 거짓) 때까지 그것은 잘 작동한다. df (열 정렬)를 만들 때 어떻게 든 부서집니다. – RPacker