Pandasでデータをソートするとき、あるカラムの値を使った行のソート(解りにくい表現ですが、列の内部的ソート)は普通にDataFrame.sore()メソッドでできるのですが、ある行の値を使ったカラムのソート(ラベルのソートではなく)はリファレンスが殆ど無く行のソートと比べると解りにくかったりします。いろいろ方法を調べていると結構簡単にこちらのソートもできるようだったのでメモしておきます。
## 通常Pandasでソートと言うとaxis=0方向のソートとなる(カラム内の値でのソート)。
## axisオプションを変えて回転した向きのソートができるかというとそうでもありません。
df.sort(column="hoge", axis=0)
## カラムの順番をあるインデックスの値でソートしたいときは下記のように書きます
new_df = df.T.sort(columns='hoge').T
## 例えば累積度数のデータがいくつかのカテゴリである場合最終的な値の大きい順に
## カラムを入れ替え、上位10のカテゴリを得ようとすると…
new_df = df.T.sort(columns=df.last_valid_index(), ascending=False).T
new_df = new_df.ix[:, :10]
## おまけ。ixの指定に条件式を使ったフィルター
## ixによるスライシングには条件式を使うことができる。下記のフィルターは最大値が100より大きい列を抽出している
new_df = df.ix[:, df.apply(max, axis=0) > 100]