[Python]Pandasの指定行を簡単に削除する方法

はじめに

データ分析や機械学習のためのPythonライブラリであるPandasは、データフレームと呼ばれるテーブル形式のデータ構造を提供します。データフレームは行と列からなり、行の操作として行削除も重要な処理です。本記事では、Pandasを使ってデータフレームから特定の行を簡単に削除する方法を紹介します。

基本的な行削除方法:drop関数の使い方

最も基本的な行削除の方法は、Pandasのdrop関数を使用することです。この関数を使うと、指定した行を削除することができます。

以下に、drop関数の基本的な使い方を示します。

import pandas as pd
# データフレームの作成
df = pd.DataFrame({'A': [1, 2, 3],
                   'B': [4, 5, 6],
                   'C': [7, 8, 9]})
# 行削除
df.drop(1, inplace=True)
print(df)

上記のコードでは、drop関数を使用して行番号が1の行を削除しています。行番号は0から始まることに注意してください。実行結果は以下の通りです。

   A  B  C
0  1  4  7
2  3  6  9

行インデックスを指定して削除する方法

行番号ではなく、行のインデックスを指定して行削除する方法もあります。行のインデックスは、データフレームのindex属性で確認できます。

以下に、行インデックスを指定して行を削除する例を示します。

import pandas as pd
# データフレームの作成
df = pd.DataFrame({'A': [1, 2, 3],
                   'B': [4, 5, 6],
                   'C': [7, 8, 9]},
                  index=['X', 'Y', 'Z'])
# 行削除
df.drop('Y', inplace=True)
print(df)

上記のコードでは、行インデックスが’Y’の行を削除しています。実行結果は以下の通りです。

A B C
X 1 4 7
Z 3 6 9

条件に基づいて行を削除する方法

Pandasでは、特定の条件に基づいて行を削除することも可能です。条件を指定するためには、ブールインデックスを使用します。

以下に、条件に基づいて行を削除する例を示します。

import pandas as pd
# データフレームの作成
df = pd.DataFrame({'A': [1, 2, 3],
                   'B': [4, 5, 6],
                   'C': [7, 8, 9]})
# 条件に基づいて行を削除
df = df[df['A'] != 2]
print(df)

上記のコードでは、’A’列の値が2でない行を削除しています。実行結果は以下の通りです。

   A  B  C
0  1  4  7
2  3  6  9

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

複数の行を一度に削除する場合は、drop関数を使う代わりに、dropメソッドを使用することもできます。このメソッドを使用すると、複数の行をまとめて削除することができます。

以下に、一度に複数の行を削除する例を示します。

import pandas as pd
# データフレームの作成
df = pd.DataFrame({'A': [1, 2, 3, 4],
                   'B': [5, 6, 7, 8],
                   'C': [9, 10, 11, 12]})
# 行削除
df.drop([0, 2], inplace=True)
print(df)

上記のコードでは、行番号が0と2の行を削除しています。実行結果は以下の通りです。

   A  B   C
1  2  6  10
3  4  8  12

元のデータフレームを変更せずに行を削除する方法

上述の方法では、元のデータフレーム自体が変更されています。しかし、元のデータフレームを変更せずに行を削除する方法もあります。その場合、削除後のデータフレームを新たな変数に代入するだけです。

以下に、元のデータフレームを変更せずに行を削除する例を示します。

import pandas as pd
# データフレームの作成
df = pd.DataFrame({'A': [1, 2, 3],
                   'B': [4, 5, 6],
                   'C': [7, 8, 9]})
# 行削除
new_df = df.drop(1)
print("元のデータフレーム:")
print(df)
print("削除後のデータフレーム:")
print(new_df)

上記のコードでは、drop関数を使用して行番号が1の行を削除し、削除後のデータフレームをnew_dfという新しい変数に代入しています。元のデータフレームは変更されずに残ります。実行結果は以下の通りです。

# 元のデータフレーム:
   A  B  C
0  1  4  7
1  2  5  8
2  3  6  9
# 削除後のデータフレーム:
   A  B  C
0  1  4  7
2  3  6  9

まとめ

本記事では、PythonのPandasライブラリを使ってデータフレームから特定の行を簡単に削除する方法について紹介しました。以下にまとめを示します。

  • drop関数を使用することで、指定した行を削除できます。
  • 行インデックスを指定して削除する場合は、drop関数の代わりにdropメソッドを使用します。
  • 条件に基づいて行を削除する場合は、ブールインデックスを使用します。
  • 複数の行を一度に削除する場合は、dropメソッドを使用するか、drop関数に削除する行番号のリストを渡します。
  • 元のデータフレームを変更せずに行を削除する場合は、削除後のデータフレームを新たな変数に代入します。

これらの方法を使うことで、Pandasを使ったデータフレームの行削除がスムーズに行えるようになるでしょう。ぜひ活用してください。