【Python】locとilocのメソッドについて、それぞれ3つの具体例をいれて説明していく

Python

locとilocとは

locとilocは、PandasのDataFrameやSeriesからデータを抽出するためのメソッドです。
※Pandasは、データフレームを扱うための強力なライブラリです。
データフレーム内のデータを操作する際に、 loc および iloc は非常に役立ちます。

locとilocの違い

loc
:locは、行と列のラベル(名前)を指定してデータを取得する方法です。指定した範囲の最後の要素も含み、真偽値のデータも受け付けます。

iloc
:ilocは、行と列のインデックス(番号)を指定してデータを取得する方法です。指定した範囲の最後の要素は含まれず、真偽値のデータは受け付けません。

locの具体例①

データフレーム df から行のラベルが 1 で列のラベルが B である要素を取得する方法

import pandas as pd

data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}
df = pd.DataFrame(data)
df
# 行のラベルが1、列のラベルがBである要素を取得
print(df.loc[1, 'B'])
#Output:5

5が出力される。

locの具体例②

データフレーム df から行のラベルが 1 ~2で列のラベルが B~C である要素を取得する方法

import pandas as pd

data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}
df = pd.DataFrame(data)
df
# 行のラベルが1 ~2、列のラベルがB~Cである要素を取得
print(df.loc[1:2, 'B':'C'])

locの具体例③

データフレーム df から行のラベルが 0と2で列のラベルが AとC である要素を取得する方法

import pandas as pd

data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}
df = pd.DataFrame(data)
df
# 行のラベルが1、列のラベルがBである要素を取得
print(df.loc[[0,2], ['A', 'C']])

ilocの具体例①

データフレーム df から行の番号が 1 で列の番号が 1 である要素を取得する方法

import pandas as pd
data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}
df = pd.DataFrame(data)
df
# 行の番号が1、列の番号が1である要素を取得
print(df.iloc[1, 1])

5が出力される。

ilocの具体例②

データフレーム df から行の番号が 1~2 で列の番号が 1~2 である要素を取得する方法

import pandas as pd
data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}
df = pd.DataFrame(data)
df
# 行の番号が1~2、列の番号が1~2である要素を取得
print(df.iloc[1:3, 1:3])

ilocの具体例③

データフレーム df から行の番号が 0と2 で列の番号が 0と2 である要素を取得する方法

import pandas as pd
data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}
df = pd.DataFrame(data)
df
# 行の番号が1~2、列の番号が1~2である要素を取得
print(df.iloc[[0,2], [0,2]])

まとめ

locメソッドで行ラベル指定するとき、行ラベルを事前に変えている(文字列にしている)場合は”(シングルクォーテーション)もしくは””(ダブルクォーテーション)で囲む必要があります。
locとilocの使い分けは、データの特徴や抽出の方法によって変わります。自分の目的に合ったメソッドを選んで使い分けましょう!

タイトルとURLをコピーしました