Pandas ilocで特定の行や列を抽出する方法を解説

Pythonのデータ操作ライブラリであるPandasは、データ分析や処理に欠かせないツールとなっています。その中でも、ilocは特定の行や列を簡単に抽出するための非常に強力な機能です。本記事では、ilocの基本的な使い方から、複雑な操作までを実例を交えながら解説します。

1. pandas ilocとは?基本的な使い方を解説

ilocは、Pandasでインデックスを基にデータを選択するためのメソッドです。これは、行番号や列番号を使って、データフレームやシリーズから特定のデータを抽出するために使用されます。

1-1: pandas ilocとlocの違い

ilocは整数インデックスを使用するのに対し、locはラベルベースのインデックスを使用します。例えば、次のように異なります。

import pandas as pd

# データフレームを作成
df = pd.DataFrame({
    'A': [1, 2, 3, 4],
    'B': [10, 20, 30, 40],
    'C': [100, 200, 300, 400]
})

# ilocを使用して2行目を取得
print(df.iloc[1])

# locを使用して2行目を取得(ラベルベース)
print(df.loc[1])

1-2: pandasでのilocを用いた基本的なデータ抽出

ilocは、次のようにシンプルに使用できます。

# 3行目のデータを取得
print(df.iloc[2])

1-3: DataFrameとSeriesに対するilocの適用方法

DataFrameに対してもSeriesに対しても、ilocは同様に動作しますが、その結果はデータの構造に依存します。

# データフレームの3行目のB列を取得
print(df.iloc[2, 1])

# シリーズに対してilocを使用
series = df['A']
print(series.iloc[2])

2. Pythonでのpandas ilocの複数行・複数列の抽出

複数の行や列を同時に抽出することも可能です。

2-1: 行番号を使った複数行の取得方法

連続する行を取得するには、スライスを使用します。

# 1行目から3行目までを取得
print(df.iloc[0:3])

2-2: 列番号を使った複数列の取得方法

列の範囲を指定して抽出する例です。

# 1列目から2列目までを取得
print(df.iloc[:, 0:2])

2-3: 行と列の組み合わせでのデータ抽出

行と列の組み合わせで特定の範囲を抽出することもできます。

# 2行目と3行目の、A列とB列を取得
print(df.iloc[1:3, 0:2])

3. pandas ilocによるデータの代入と編集

ilocはデータの抽出だけでなく、データの更新や編集にも使用できます。

3-1: 特定の位置にデータを代入する方法

特定のセルに値を代入するには、以下のようにします。

# 2行目のB列に新しい値を代入
df.iloc[1, 1] = 25
print(df)

3-2: 範囲指定によるデータの一括編集

複数のセルに一括で値を代入することもできます。

# 1行目から2行目のA列に値を代入
df.iloc[0:2, 0] = [100, 200]
print(df)

3-3: 複数インデックスを用いたデータの更新

複数のインデックスを使ってデータを一括で更新する例です。

# 1行目と3行目のB列に値を代入
df.iloc[[0, 2], 1] = [15, 35]
print(df)

4. ilocと共に使うスライスによるデータ操作

スライスと組み合わせることで、ilocの柔軟性がさらに増します。

4-1: ilocでのスライスの基本的な書き方

基本的なスライスの書き方は次の通りです。

# 1行目から3行目のデータを抽出
print(df.iloc[0:3])

4-2: 範囲指定によるデータの部分的な抽出

特定の範囲のデータを抽出することで、必要な部分だけを取り出すことができます。

# 2列目から3列目のデータを取得
print(df.iloc[:, 1:3])

4-3: 条件式を用いたデータのフィルタリング

条件式を用いたデータの抽出も可能です。

# B列が30以上の行を取得
print(df.iloc[:, 1][df['B'] >= 30])

まとめ

ilocを使えば、Pandasのデータフレームやシリーズから特定の行や列を簡単に抽出、編集することができます。この記事で紹介した基本的な使い方や応用テクニックを活用し、より効率的にデータ操作を行ってください。

上部へスクロール