2016-10-18 7 views
0

は、我々はデータフレームを、次のしているとしますパンダ:最大値で並べ替え列

ここ
A B C D 

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

、我々は彼らの最大値に応じて列をソートする必要があります。 したがって、列は次のようにソートされるべきである:

C B D A 

MAX(C)は=ので60、MAX(B)= 40、MAX(D)= 10、MAX(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(ascending = False)までうまくいきます。 df(列の並べ替え)を作成するときに何とか壊れます。 – RPacker

関連する問題