pythonのデータ解析ライブラリであるpandasについて、loc、ilocの使い方や違いについて紹介します。
本記事では、以下の内容を紹介します。
この記事で分かること
- loc、ilocの違いについて
- locの使い方
- ilocの使い方
なお、記事中のサンプルコードには、以下のデータフレームを使用しています。
df = pd.DataFrame(
data = [['LA Store','Los Angeles', 'CA', 1000],
['SF Store', 'San Francisco', 'CA', 2000],
['Portland Store', 'Portland', 'OR', 1500],
['Denver Store', 'Denver', 'CO', 1000]],
columns=['STORE', 'CITY', 'STATE', 'SALES']
)
df.set_index('STORE', inplace=True)
df
スポンサーリンク
loc、ilocの違いについて
はじめに、loc、ilocの違いについて、簡単に紹介します。
pandasのlocとilocは、どちらも行、列、要素の抽出に使用します。
loc と iloc では、行、列の指定方法が異なります。
loc : 行、列の名前(ラベル)で指定
iloc : 番号(インデックス)で指定
loc、ilocを使用して、DataFrameの行を抽出するサンプルコードです。
import pandas as pd
df = pd.DataFrame(
data = [['LA Store','Los Angeles', 'CA', 1000],
['SF Store', 'San Francisco', 'CA', 2000],
['Portland Store', 'Portland', 'OR', 1500],
['Denver Store', 'Denver', 'CO', 1000]],
columns=['STORE', 'CITY', 'STATE', 'SALES']
)
df.set_index('STORE', inplace=True)
# ---------- loc ---------- #
print(df.loc['SF Store'])
# CITY San Francisco
# STATE CA
# SALES 2000
# Name: SF Store, dtype: object
# ---------- iloc ---------- #
print(df.iloc[1])
# CITY San Francisco
# STATE CA
# SALES 2000
# Name: SF Store, dtype: object
スポンサーリンク
locの使い方
locの使い方について紹介します。
loc は、要素を、行名、列名で指定します。
書き方
loc[ '行名', '列名' ]
以下、サンプルコードです。
◆行を抽出する例
import pandas as pd
df = pd.DataFrame(
data = [['LA Store','Los Angeles', 'CA', 1000],
['SF Store', 'San Francisco', 'CA', 2000],
['Portland Store', 'Portland', 'OR', 1500],
['Denver Store', 'Denver', 'CO', 1000]],
columns=['STORE', 'CITY', 'STATE', 'SALES']
)
df.set_index('STORE', inplace=True)
print(df.loc['SF Store'])
# CITY San Francisco
# STATE CA
# SALES 2000
# Name: SF Store, dtype: object
> print(df.loc['SF Store'])
loc[ '行名' ]を指定し、行を抽出しています。
◆列を抽出する例
import pandas as pd
df = pd.DataFrame(
data = [['LA Store','Los Angeles', 'CA', 1000],
['SF Store', 'San Francisco', 'CA', 2000],
['Portland Store', 'Portland', 'OR', 1500],
['Denver Store', 'Denver', 'CO', 1000]],
columns=['STORE', 'CITY', 'STATE', 'SALES']
)
df.set_index('STORE', inplace=True)
print(df.loc[:,'CITY'])
# STORE
# LA Store Los Angeles
# SF Store San Francisco
# Portland Store Portland
# Denver Store Denver
# Name: CITY, dtype: object
> print(df.loc[:,'CITY'])
loc[ : , '列名' ] を指定し、列を抽出しています。
◆要素を抽出する例
import pandas as pd
df = pd.DataFrame(
data = [['LA Store','Los Angeles', 'CA', 1000],
['SF Store', 'San Francisco', 'CA', 2000],
['Portland Store', 'Portland', 'OR', 1500],
['Denver Store', 'Denver', 'CO', 1000]],
columns=['STORE', 'CITY', 'STATE', 'SALES']
)
df.set_index('STORE', inplace=True)
print(df.loc['SF Store', 'CITY'])
# San Francisco
> print(df.loc['SF Store', 'CITY'])
loc[ '行名' , '列名' ] を指定し、要素を抽出しています。
スポンサーリンク
ilocの使い方
ilocの使い方について紹介します。
iloc は、要素を、行番号、列番号で指定します。
書き方
iloc[ 行番号, 列番号 ]
以下、サンプルコードです。
◆行を抽出する例
import pandas as pd
df = pd.DataFrame(
data = [['LA Store','Los Angeles', 'CA', 1000],
['SF Store', 'San Francisco', 'CA', 2000],
['Portland Store', 'Portland', 'OR', 1500],
['Denver Store', 'Denver', 'CO', 1000]],
columns=['STORE', 'CITY', 'STATE', 'SALES']
)
df.set_index('STORE', inplace=True)
print(df.iloc[1])
# CITY San Francisco
# STATE CA
# SALES 2000
# Name: SF Store, dtype: object
> print(df.iloc[1])
iloc[ 行番号 ]を指定し、行を抽出しています。
◆列を抽出する例
import pandas as pd
df = pd.DataFrame(
data = [['LA Store','Los Angeles', 'CA', 1000],
['SF Store', 'San Francisco', 'CA', 2000],
['Portland Store', 'Portland', 'OR', 1500],
['Denver Store', 'Denver', 'CO', 1000]],
columns=['STORE', 'CITY', 'STATE', 'SALES']
)
df.set_index('STORE', inplace=True)
print(df.iloc[:, 0])
# STORE
# LA Store Los Angeles
# SF Store San Francisco
# Portland Store Portland
# Denver Store Denver
# Name: CITY, dtype: object
> print(df.iloc[:, 0])
loc[ : , 列番号 ] を指定し、列を抽出しています。
◆要素を抽出する例
import pandas as pd
df = pd.DataFrame(
data = [['LA Store','Los Angeles', 'CA', 1000],
['SF Store', 'San Francisco', 'CA', 2000],
['Portland Store', 'Portland', 'OR', 1500],
['Denver Store', 'Denver', 'CO', 1000]],
columns=['STORE', 'CITY', 'STATE', 'SALES']
)
df.set_index('STORE', inplace=True)
print(df.iloc[1, 0])
# San Francisco
> print(df.iloc[1, 0])
loc[ 行番号 , 列番号 ] を指定し、要素を抽出しています。
スポンサーリンク