【Python】Pandasのdrop()メソッドでDataFrameから行・列を削除する方法
Pandasは、データ分析やデータクレンジング(データラングリング)の分野で最も人気のあるPythonライブラリのひとつです。本記事では、PandasのDataFrameを作成した後、drop()メソッドを使って不要な行や列を選択的に削除する方法を解説します。
行を削除する方法
以下の例では、iris.csvファイルを読み込んでDataFrameを作成しています。まず元のDataFrameの内容を確認し、その後、インデックス列に対してdrop()関数を適用して、指定した値(インデックス番号)に該当する行を削除します。実行結果の下部を見ると、行数が3行減っていることが確認できます。
サンプルコード
import pandas as pd
# CSVファイルからDataFrameを作成
data = pd.read_csv("E:\\iris1.csv",index_col ="Id")
print(data)
# 指定した値の行を削除
data.drop([6,9,10],inplace=True)
# 結果を表示
print(data)
実行結果
上記のコードを実行すると、次のような結果が得られます。
SepalLengthCm SepalWidthCm PetalLengthCm PetalWidthCm Species Id 1 5.1 3.5 1.4 0.2 Iris-setosa 2 4.9 3.0 1.4 0.2 Iris-setosa 3 4.7 3.2 1.3 0.2 Iris-setosa . .. … .… .…..…… [150 rows x 5 columns] After Dropping SepalLengthCm SepalWidthCm PetalLengthCm PetalWidthCm Species Id 1 5.1 3.5 1.4 0.2 Iris-setosa 2 4.9 3.0 1.4 0.2 Iris-setosa 3 4.7 3.2 1.3 0.2 Iris-setosa 149 6.2 3.4 5.4 2.3 Iris-virginica 150 5.9 3.0 5.1 1.8 Iris-virginica …………………. [147 rows x 5 columns]
この例では、inplace=Trueを指定しているため、元のDataFrame自体が直接更新されます。inplace=Trueを省略した場合は、削除後の新しいDataFrameが返されるだけで、元のオブジェクトは変更されない点に注意してください。
列を削除する方法
PandasのDataFrameから列を削除する場合は、axisパラメータを使用します。drop()関数内でaxis=1を設定し、削除したい列名をリストで渡すことで、複数の列を一度に削除できます。実行結果を見ると、列数が5列から3列に減っていることがわかります。
サンプルコード
import pandas as pd
# CSVファイルからDataFrameを作成
data = pd.read_csv("E:\\iris1.csv",index_col ="Id")
print(data)
# 指定した列を削除
data.drop(['SepalWidthCm','PetalLengthCm'],axis=1,inplace=True)
print("After Dropping")
# 結果を表示
print(data)
実行結果
上記のコードを実行すると、次のような結果が得られます。
SepalLengthCm SepalWidthCm PetalLengthCm PetalWidthCm Species Id 1 5.1 3.5 1.4 0.2 Iris-setosa 2 4.9 3.0 1.4 0.2 Iris-setosa 3 4.7 3.2 1.3 0.2 Iris-setosa . . .… .… .…. .…… [150 rows x 5 columns] After Dropping SepalLengthCm PetalWidthCm Species Id 1 5.1 0.2 Iris-setosa 2 4.9 0.2 Iris-setosa 3 4.7 0.2 Iris-setosa .....…. [150 rows x 3 columns]
まとめ
drop()メソッドを使えば、行と列のどちらも簡単に削除できます。ポイントは以下の通りです。
- 行の削除: インデックス番号をリストで指定する(デフォルトの
axis=0) - 列の削除: 列名をリストで指定し、
axis=1を設定する - 元のDataFrameを直接変更したい場合:
inplace=Trueを指定する
これらの使い方を覚えておくと、データ前処理の作業効率が大きく向上します。
-
Python PandasでDataFrameの複数のデータ列をプロットする方法
PythonのPandasライブラリを使えば、DataFrameに含まれる複数のデータ列を簡単に可視化できます。本記事では、plot()メソッドを使用し、kindパラメータをbarに設定することで、複数の列を1つの棒グラフとして描画する方法を解説します。必要なライブラリのインポートまず、PandasとMatplotlibという2つの必須ライブラリをインポートします。Pandasはデータ操作を、Matplotlibはグラフの表示を担当します。import pandas as pd import matplotlib.pyplot as mpサンプルデータの準備ここでは、各チームのランキングポイン
-
【Python】Pandas DataFrameからnull(欠損値)行を削除する方法|dropna()の使い方
PandasのDataFrameからnull(NaN)行を削除するには、dropna()メソッドを使用します。この記事では、NaNを含むCSVファイルを読み込み、dropna()で欠損値を含む行を取り除くまでの手順を、サンプルコードと実行結果とともにわかりやすく解説します。前提:NaNを含むCSVファイル今回の例では、一部にNaN(null値)が含まれる以下のようなCSVファイル(CarRecords.csv)を使用します。手順1:read_csv()でCSVファイルを読み込むまずpandasをインポートし、read_csv()を使ってCSVファイルを読み込みます。ここではデスクトップ上に保存