pandasのDataFrameで、列を「列名」でソートしたいときに、さくっとワンライナーで実行する方法です。
※ (6/9) コメントでご指摘をいただき、一部書き換えました。
次のようなDataFrameがあったときに
df = pd.DataFrame({4:[1,2,3], 2: [1,2,3], 1:[1,2,3], 3: [1,2,3]})
下のコードで実行できます。
df.sort_index(1)
# または
df.T.sort_index().T
アルファベットの列名でも同様に実行可能です。
df = pd.DataFrame({'d':[1,2,3], 'b': [1,2,3], 'a':[1,2,3], 'c': [1,2,3]})
df.sort_index(1)
# または
df.T.sort_index().T
ひらがなも上手くいきました。
df = pd.DataFrame({'え':[1,2,3], 'い': [1,2,3], 'あ':[1,2,3], 'う': [1,2,3]})
df.sort_index(1)
# または
df.T.sort_index().T
漢字はダメでした。(なんか惜しいけど。)
df = pd.DataFrame({'四':[1,2,3], '二': [1,2,3], '一':[1,2,3], '三': [1,2,3]})
df.sort_index(1)
# または
df.T.sort_index().T
以上、どこかで使えるかもしれない小ネタでした。




