次のような DataFrame があるとします。
a b c d e f g
1 2 3 4 5 6 7
4 3 7 1 6 9 4
8 9 0 2 4 2 1
a
と以外のすべての列を削除するにはどうすればよいですかb
?
結果は次のようになります:
a b
1 2
4 3
8 9
仮に 1000 列のデータがあるとすると、a
と以外のすべての列を削除するという簡単なコード行を使用してこれらを削除する方法が必要です。b
ありがとう。
ベストアンサー1
In [48]: df.drop(df.columns.difference(['a','b']), 1, inplace=True)
Out[48]:
a b
0 1 2
1 4 3
2 8 9
または:
In [55]: df = df.loc[:, df.columns.intersection(['a','b'])]
In [56]: df
Out[56]:
a b
0 1 2
1 4 3
2 8 9
追伸:ご注意くださいの最も慣用的なパンダのやり方それを実行することはすでに@Wenによって提案されている:
df = df[['a','b']]
または
df = df.loc[:, ['a','b']]