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