列を元のデータフレームからドロップして新しいデータフレームとする方がピックアップして作るより多いと思います。この例では14列程度の小さなデータフレームなので、その気になれば一から組み立てることもできますが、実際の解析では、500以上の列というのはザラです。 そんな時、10程度の列をドロップしてNaNを完全になくしたデータフレームを作成するには、やはりdropメソッドを使うことが多いと思います。 それなのに、忘れてしまいがちな構文です。

1
2
3
4
5
6
7
8
9
10
11
12
# 元のデータフレームから5つの任意の列をドロップする
print('before', df.shape) 

to_drop = ['PY_01',
           'PY_04',
           'PY_08',
           'PY_09',
           'PY_10']

df.drop(to_drop, inplace=True, axis=1)

print('after', df.shape) 
before (7507, 14)
after (7507, 9)

inplace=True でオブジェクトそのものに変更を加える。 そしてカラムに対して行うというコーディングです。

また、以下で同じことです。この場合は、ドロップした結果をdfに再度、代入しています。 

1
2
3
print('before', df.shape) 
df =  df.drop(columns=['PY_01', 'PY_04','PY_08', 'PY_09', 'PY_10'])
print('after', df.shape) 

df.head() 中身は以下のとおりでした。

df.head()