【Python】pandasで特定の行を操作する方法:データフレームからの選択・削除・編集テクニック

はじめに

pandasは、Pythonでデータ分析を行う際に欠かせないライブラリです。pandasを使うと、Excelのような表形式のデータを扱うことができます。本記事では、pandasを使って特定の行を選択、削除、編集、挿入、結合する方法について説明します。

行の選択方法:インデックスやラベルを使ってデータフレームから特定の行を選択する方法

まず、データフレームから特定の行を選択する方法について説明します。

データフレームから特定の行を選択するには、ilocを使う方法とlocを使う方法があります。ilocは、行と列の位置を指定して要素を取得するためのメソッドです。locは、行と列のラベルを指定して要素を取得するためのメソッドです。

以下に、ilocとlocを使ってデータフレームから特定の行を選択する例を示します。

import pandas as pd

# データフレームの作成
df = pd.DataFrame({
    'name': ['Alice', 'Bob', 'Charlie', 'David', 'Eva'],
    'age': [25, 30, 35, 40, 45],
    'gender': ['female', 'male', 'male', 'male', 'female']
})

# ilocを使った行の選択
print(df.iloc[2]) # 2行目を選択

# locを使った行の選択
print(df.loc[df['name'] == 'Charlie']) # nameがCharlieの行を選択

上記のコードを実行すると、以下のように出力されます。

name      Charlie
age            35
gender       male
Name: 2, dtype: object
      name  age gender
2  Charlie   35   male

ilocを使った場合、2行目の情報が取得されます。locを使った場合は、nameがCharlieの行の情報が取得されます。

行の削除方法:インデックスやラベルを使ってデータフレームから特定の行を削除する方法

次に、データフレームから特定の行を削除する方法について説明します。

データフレームから特定の行を削除するには、dropメソッドを使います。dropメソッドには、削除する行のインデックスまたはラベルを指定することができます。

以下に、dropメソッドを使ってデータフレームから特定の行を削除する例を示します。

import pandas as pd

# データフレームの作成
df = pd.DataFrame({
    'name': ['Alice', 'Bob', 'Charlie', 'David', 'Eva'],
    'age': [25, 30, 35, 40, 45],
    'gender': ['female', 'male', 'male', 'male', 'female']
})

# 行の削除
df = df.drop(2) # 2行目を削除
print(df)

上記のコードを実行すると、以下のように出力されます。

      name  age  gender
0    Alice   25  female
1      Bob   30    male
3    David   40    male
4      Eva   45  female

上記のコードで、2行目が削除されたデータフレームが出力されます。

行の編集方法:条件に基づいて特定の行の値を変更する方法

次に、データフレームから特定の行の値を編集する方法について説明します。

データフレームから特定の行の値を編集するには、locを使います。locを使って編集する場合、変更したい行のラベルと列のラベルを指定して、新しい値を代入します。

以下に、locを使って特定の行の値を変更する例を示します。

import pandas as pd

# データフレームの作成
df = pd.DataFrame({
    'name': ['Alice', 'Bob', 'Charlie', 'David', 'Eva'],
    'age': [25, 30, 35, 40, 45],
    'gender': ['female', 'male', 'male', 'male', 'female']
})

# 行の編集
df.loc[df['name'] == 'Charlie', 'age'] = 36 # nameがCharlieの行のageを36に変更
print(df)

上記のコードを実行すると、以下のように出力されます。

      name  age  gender
0    Alice   25  female
1      Bob   30    male
2  Charlie   36    male
3    David   40    male
4      Eva   45  female

上記のコードで、nameがCharlie
# の行のageが36に変更されたデータフレームが出力されます。

行の挿入方法:指定した位置に新しい行を追加する方法

次に、データフレームに新しい行を追加する方法について説明します。

データフレームに新しい行を追加するには、appendメソッドを使います。appendメソッドには、追加する行のデータを含むデータフレームを渡すことができます。

以下に、appendメソッドを使ってデータフレームに新しい行を追加する例を示します。

import pandas as pd

# データフレームの作成
df = pd.DataFrame({
    'name': ['Alice', 'Bob', 'Charlie', 'David', 'Eva'],
    'age': [25, 30, 35, 40, 45],
    'gender': ['female', 'male', 'male', 'male', 'female']
})

# 行の追加
new_row = pd.DataFrame({'name': ['Frank'], 'age': [50], 'gender': ['male']})
df = df.append(new_row, ignore_index=True) # 最後に行を追加
print(df)

上記のコードを実行すると、以下のように出力されます。

      name  age  gender
0    Alice   25  female
1      Bob   30    male
2  Charlie   35    male
3    David   40    male
4      Eva   45  female
5    Frank   50    male

上記のコードで、新しい行が追加されたデータフレームが出力されます。

行の結合方法:異なるデータフレームから特定の行を結合する方法

最後に、異なるデータフレームから特定の行を結合する方法について説明します。

データフレームから特定の行を結合するには、concatメソッドを使います。concatメソッドには、結合するデータフレームのリストを渡すことができます。

以下に、concatメソッドを使って異なるデータフレームから特定の行を結合する例を示します。

import pandas as pd

# データフレームの作成
df1 = pd.DataFrame({
    'name': ['Alice', 'Bob'],
    'age': [25, 30],
    'gender': ['female', 'male']
})
df2 = pd.DataFrame({
    'name': ['Charlie', 'David', 'Eva'],
    'age': [35, 40, 45],
    'gender': ['male', 'male', 'female']
})

# データフレームの結合
df = pd.concat([df1, df2[df2['name'] == 'Charlie']]) # df1と、df2からnameがCharlieの行を選択して結合
print(df)

上記のコードを実行すると、以下のように出力されます。

      name  age  gender
0    Alice   25  female
1      Bob   30    male
0  Charlie   35    male

上記のコードで、df1と、df2からnameがCharlieの行を選択して結合したデータフレームが出力されます。

まとめ

本記事では、pandasを使って特定の行を選択、削除、編集、挿入、結合する方法について説明しました。

行の選択には、ilocとlocを使い、行の削除にはdropメソッドを使います。行の編集にはlocを使い、行の挿入にはappendメソッドを使います。行の結合にはconcatメソッドを使います。

これらの操作を使うことで、データフレームから必要な行を抽出し、必要な情報を取得することができます。