1. ホーム
  2. python

[解決済み] pandas のデータフレームで列を移動する

2023-07-07 22:41:13

質問

以下のようなデータフレームがあります。

   a  b   x  y
0  1  2   3 -1
1  2  4   6 -2
2  3  6   9 -3
3  4  8  12 -4

b列とx列をデータフレームの最後の2列になるように移動するにはどうしたらよいでしょうか?私はbとxを名前で指定したいのですが、他の列は指定できません。

どのように解決するのですか?

列の順番を指定することで、直接列を並べ替えることができます。

df = df[['a', 'y', 'b', 'x']]

列のタイトルが動的な大きなデータフレームの場合、リスト内包を使用してターゲットセットに含まれないすべての列を選択し、ターゲットセットを最後に追加することができます。

>>> df[[c for c in df if c not in ['b', 'x']] 
       + ['b', 'x']]
   a  y  b   x
0  1 -1  2   3
1  2 -2  4   6
2  3 -3  6   9
3  4 -4  8  12

より弾丸のようにするために、ターゲットカラムが実際にデータフレームにあることを確認することができます。

cols_at_end = ['b', 'x']
df = df[[c for c in df if c not in cols_at_end] 
        + [c for c in cols_at_end if c in df]]