このページでは、Pandas で作成したデータフレームの特定の行 (レコード) 、列 (カラム) を除去・取り除く方法について紹介します。
なお、条件に基づいて特定の行や列を抽出する方法については、「Pandas でデータフレームから特定の行・列を取得する」もご覧ください。
特定の行を削除する
DataFrame.drop()
メソッドを利用して、インデックスに基づいて特定の行の削除を行うことができます。リストを指定して、複数の行を一度に削除することもできます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
>>> import pandas as pd >>> import numpy as np >>> # データフレーム df を作成 >>> df = pd.DataFrame(np.random.randn(6,4), columns=list('ABCD')) >>> df A B C D 0 1.361879 1.189704 2.138577 -0.476125 1 0.299178 -1.452818 -1.147374 -2.332064 2 -0.612929 -1.677195 1.735829 -0.621198 3 -0.743785 -0.223876 0.198582 -0.126726 4 1.050872 0.252367 -0.579578 0.046591 5 -1.811098 1.753245 0.339837 -0.432238 >>> # 行 5 を削除 >>> df.drop(5) A B C D 0 1.361879 1.189704 2.138577 -0.476125 1 0.299178 -1.452818 -1.147374 -2.332064 2 -0.612929 -1.677195 1.735829 -0.621198 3 -0.743785 -0.223876 0.198582 -0.126726 4 1.050872 0.252367 -0.579578 0.046591 >>> # 行 3 と 4 を削除 >>> df.drop([3,4]) A B C D 0 1.361879 1.189704 2.138577 -0.476125 1 0.299178 -1.452818 -1.147374 -2.332064 2 -0.612929 -1.677195 1.735829 -0.621198 5 -1.811098 1.753245 0.339837 -0.432238 |
特定の列を削除する
列の削除は行と同様に、DataFrame.drop()
メソッドを利用しますが、引数に、axis=1
を指定し、列の削除であることを指定します。
1 2 3 4 5 6 7 8 9 10 |
>>> # 列 A を削除 >>> df.drop("A", axis=1) B C D 0 1.189704 2.138577 -0.476125 1 -1.452818 -1.147374 -2.332064 2 -1.677195 1.735829 -0.621198 3 -0.223876 0.198582 -0.126726 4 0.252367 -0.579578 0.046591 5 1.753245 0.339837 -0.432238 |
より簡単な方法として、Python の del
ステートメントを利用する方法もあります。
1 2 3 4 5 6 7 8 9 10 |
>>> # 列 A を削除 >>> del df['A'] >>> df B C D 0 1.189704 2.138577 -0.476125 1 -1.452818 -1.147374 -2.332064 2 -1.677195 1.735829 -0.621198 3 -0.223876 0.198582 -0.126726 4 0.252367 -0.579578 0.046591 5 1.753245 0.339837 -0.432238 |
参考: pandas.DataFrame.drop — pandas 0.17.0 documentation