Python
 Computer >> コンピューター >  >> プログラミング >> Python

【Python・Pandas】DataFrameから行を削除する方法(dropメソッドの使い方)

PandasのDataFrameから行を削除するには、drop()メソッドを使用し、引数に削除したい行のインデックスラベルを指定します。この記事では、具体的なサンプルコードと実行結果をもとに、行の削除方法をわかりやすく解説します。

1. サンプル用のDataFrameを作成する

まずは、インデックスラベルとして「w」「x」「y」「z」を持つDataFrameを作成しましょう。

import pandas as pd

dataFrame = pd.DataFrame(
    [[10, 15], [20, 25], [30, 35], [40, 45]],
    index=['w', 'x', 'y', 'z'],
    columns=['a', 'b']
)

2. drop()メソッドで行を削除する

次に、drop()メソッドにインデックスラベルを渡して、該当する行を削除します。ここでは、インデックスラベル「w」の行を削除してみます。

dataFrame = dataFrame.drop('w')

drop()メソッドは元のDataFrameを変更せず、指定した行を削除した新しいDataFrameを返す点に注意してください。そのため、上記のように結果を変数に再代入するのが一般的です。

完全なサンプルコード

以下に、一連の処理をまとめたコード全体を示します。

import pandas as pd

# DataFrameを作成
dataFrame = pd.DataFrame(
    [[10, 15], [20, 25], [30, 35], [40, 45]],
    index=['w', 'x', 'y', 'z'],
    columns=['a', 'b']
)

# DataFrameを表示
print("DataFrame...\n", dataFrame)

# インデックスラベル「w」の行を削除
dataFrame = dataFrame.drop('w')
print("\n行を削除した後のDataFrame...\n", dataFrame)

実行結果

上記のコードを実行すると、次のような出力が得られます。インデックスラベル「w」の行が正しく削除されていることが確認できます。

DataFrame...
     a   b
w  10  15
x  20  25
y  30  35
z  40  45

行を削除した後のDataFrame...
     a   b
x  20  25
y  30  35
z  40  45

補足:複数行の削除や元のDataFrameを直接変更する方法

応用的な使い方として、以下のテクニックも覚えておくと便利です。

複数の行を一度に削除する

リストで複数のインデックスラベルを渡すことで、まとめて行を削除できます。

dataFrame = dataFrame.drop(['w', 'x'])

元のDataFrameを直接変更する(inplace=True)

inplace=Trueを指定すると、新しいオブジェクトを作成せず、元のDataFrame自体を直接変更できます。

dataFrame.drop('w', inplace=True)

存在しないラベルを指定してもエラーを出さない(errors='ignore')

削除対象のラベルが存在しない場合でもエラーを発生させたくない場合は、errors='ignore'を指定します。

dataFrame = dataFrame.drop('w', errors='ignore')

このように、Pandasのdrop()メソッドを使えば、インデックスラベルを指定してDataFrameから柔軟に行を削除できます。データの前処理やクリーニングの場面で頻繁に使う操作なので、ぜひマスターしておきましょう。

  1. Python Pandas:read_csvのskipinitialspaceでCSV読み込み時の先頭スペースをスキップする方法

    PandasでCSVの先頭スペースをスキップするには?PandasでDataFrameを読み込む際、データの先頭にある余分な空白(初期スペース)を取り除きたい場合は、read_csv()メソッドのskipinitialspaceパラメータを使用します。このパラメータをTrueに設定すると、区切り文字(カンマなど)の直後にある空白が自動的にスキップされます。CSVファイルの中には、カンマの後に不要なスペースが混ざっているケースが少なくありません。そのまま読み込むと、列名や値の先頭に空白が残り、条件検索やグループ化の際にデータが正しく一致しない原因となります。skipinitialspace=Tr

  2. Python Tkinterのキャンバスから描画した線を削除する方法

    TkinterのCanvas(キャンバス)ウィジェットは、GUIアプリケーション開発において非常に多くの場面で活用される便利な部品です。図形の描画はもちろん、グラフィックスや画像の作成など、さまざまな用途に使用できます。キャンバス上に線を描画するには、create_line(x, y, x1, y1, **options) メソッドを使用します。Tkinterでは、実線と破線の2種類の線を描くことが可能です。作成した線をアプリケーションから削除したい場合は、delete() メソッドを使います。このメソッドに削除対象のアイテムIDを渡すことで、指定した図形だけをキャンバスから取り除くことができ