Pandasのiloc
メソッド:基本概念と使用方法
Pandasのiloc
メソッドは、データフレーム内のデータを位置ベースで抽出するための重要なツールです。以下では、その基本的な概念と使用方法について解説します。
目次
ilocの基本概念
iloc
は「integer location」の略で、整数ベースのインデックスを使用してPandasのデータフレーム内の行や列を選択するためのメソッドです。このメソッドは、データフレームの各要素に位置ベースでアクセスできるため、ラベルではなく数値インデックスを使って行や列を指定します 。
主な特徴
- 位置ベースの選択: 0から始まる整数インデックスで行と列を選択します。
- データフレーム操作が容易: 数値インデックスを使用することで、データフレームの特定の位置に簡単にアクセスできます。
ilocの基本的な使用方法
単一の行または列の選択
単一の行または列を選択するためには、行または列のインデックスを指定します。
# 2行目を選択
row = df.iloc[1]
# 1列目を選択
column = df.iloc[:, 0]
複数の行または列の選択
複数の行や列を選択する際は、インデックスのリストを指定します。
# 2行目と4行目を選択
rows = df.iloc[[1, 3]]
# 1列目と3列目を選択
columns = df.iloc[:, [0, 2]]
範囲指定による選択
iloc
ではスライスを使って範囲を指定することができ、特定の範囲内の行または列を抽出できます 。
# 0行目から3行目まで選択(3行目は含まない)
rows_range = df.iloc[0:3]
# 全ての行の、0列目から2列目まで選択
columns_range = df.iloc[:, 0:2]
ilocの特徴と注意点
-
整数インデックスのみ:
iloc
は整数インデックスのみを受け付け、ラベルは使えません 。 -
0ベースのインデックス: Pythonの慣例に従い、最初の要素のインデックスは0から始まります 。
-
範囲指定時の終了インデックスの扱い: 範囲を指定した際、終了インデックスは結果に含まれません 。
-
単一値と複数値の返り値の違い:
- 単一の行や列を選択した場合は
Series
オブジェクトが返され、複数行や複数列を選択するとDataFrame
が返されます 。
- 単一の行や列を選択した場合は
-
ラベルベースの選択との違い:
iloc
は位置ベースの選択を行いますが、loc
メソッドはラベルベースの選択を行います。このため、インデックスラベルを用いる場合はloc
が適しています 。
使用例
以下は、iloc
を使用してデータフレームの特定の位置にあるデータを抽出する例です。
import pandas as pd
data = {'Name': ['John', 'Jane', 'Alice', 'Bob'],
'Age': [25, 30, 35, 40],
'City': ['New York', 'London', 'Paris', 'Tokyo']}
df = pd.DataFrame(data)
# 2行目を選択
print(df.iloc[1])
# 1列目と3列目を選択
print(df.iloc[:, [0, 2]])
# 0行目から2行目まで、全ての列を選択
print(df.iloc[0:2, :])
このコードは、iloc
を使って行や列を選択し、データを抽出する基本的な方法を示しています。
参考文献
[1] "Pandas iloc[] method in Python," Shanelynn, available at https://www.shanelynn.ie/pandas-iloc-loc-select-rows-and-columns-dataframe/
[2] "pandas DataFrame iloc Property," W3Schools, available at https://www.w3schools.com/python/pandas/ref_df_iloc.asp
[3] "Python Pandas iloc() function," FavTutor, available at https://favtutor.com/articles/pandas-iloc/
[4] "Python | Extracting rows using Pandas iloc[]," Geeks for Geeks, available at https://www.geeksforgeeks.org/python-extracting-rows-using-pandas-iloc/
[5] "Pandas iloc Usage with Examples," Spark by Examples, available at https://sparkbyexamples.com/pandas/pandas-iloc-usage-with-examples/
各特徴や注意点についての説明は、ShanelynnやGeeks for Geeks、W3Schoolsの記事を参考にし、具体的なコード例や概念説明を基にしました 。特に、位置ベースの選択とラベルベースの選択の違いについてはSpark by Examplesの記事を参照しています 。