「pandasで複数行を効率的に抽出する方法」 データ分析の基本テクニックをマスターしよう

はじめに

pandasはPythonでデータ分析を行うためのライブラリで、データの加工・整形・統計処理などを容易に行うことができます。本記事では、pandasを用いて複数行を効率的に抽出する方法について解説します。


データセットの準備:サンプルデータフレームの生成

本記事では、以下のようなサンプルデータフレームを用いて、複数行の抽出方法を説明します。

import numpy as np
import pandas as pd

np.random.seed(0)
df = pd.DataFrame(np.random.randint(0, 10, size=(10, 5)), columns=list('ABCDE'))

print(df)
   A  B  C  D  E
0  5  0  3  3  7
1  9  3  5  2  4
2  7  6  8  8  1
3  6  7  7  8  1
4  5  9  8  9  4
5  3  0  3  5  0
6  2  3  8  1  3
7  3  3  7  0  1
8  9  9  0  4  7
9  3  2  7  2  0

出力:

複数行抽出方法1:インデックスを指定してiloc[]を使った行の抽出

最も基本的な複数行の抽出方法は、インデックスを指定してiloc[]を使う方法です。

例えば、dfの0行目から2行目までの行を抽出する場合は、以下のようにします。

print(df.iloc[0:3])
   A  B  C  D  E
0  5  0  3  3  7
1  9  3  5  2  4
2  7  6  8  8  1

複数行抽出方法2:条件を指定してquery()関数を使った行の抽出

次に紹介する方法は、query()関数を使って条件を指定して行を抽出する方法です。
例えば、dfのA列が5以上かつB列が3以下の行を抽出する場合は、以下のようにします。

print(df.query('A >= 5 and B <= 3'))
   A  B  C  D  E
0  5  0  3  3  7
1  9  3  5  2  4

出力:出力:

複数行抽出方法3:ブールインデックスを用いた行の抽出

最後に紹介する方法は、ブールインデックスを用いた行の抽出方法です。

例えば、dfのA列が5以上の行を抽出する場合は、以下のようにします。

print(df[df['A'] >= 5])
   A  B  C  D  E
0  5  0  3  3  7
1  9  3  5  2  4
2  7  6  8  8  1
3  6  7  7  8  1
4  5  9  8  9  4
8  9  9  0  4  7

出力:

まとめ

pandasを用いた複数行の抽出方法について、インデックス指定のiloc[]、query()関数、ブールインデックスを用いた方法を紹介しました。

これらの方法を活用することで、データ分析における行の抽出処理がより効率的に行えるようになるでしょう。