1列だけ除外したdataframeが作りたい。
pandasを扱っていて、この列だけいらない、という状況は結構ある。
この前、ロジスティック回帰をしていて、目的変数の2値のcolumnだけ除外したくなったが、どういったやり方が一番スマートかわからなかった。
例えば、こういうdataframeがあって、bの列だけを消したいと思った時。
df = pd.DataFrame([[1,2,3],[4, 5, 6]], columns=list('abc'))
a | b | c | |
---|---|---|---|
0 | 1 | 2 | 3 |
1 | 4 | 5 | 6 |
いくつか方法はあると思うが、どうもこれが一番いいようだ。
df[df.columns[df.columns != 'b']]
a | c | |
---|---|---|
0 | 1 | 3 |
1 | 4 | 6 |
ネストの一番内側でTrue、Falseのmaskingを作り、それを使っていらないcolumn以外のcolumnのリストを取得。
それを使って、dataframeを作る。
結構めんどくさい。
追記
df.drop("b", axis=1)
この書き方で十分だった。