.locの基本的な使い方

Pandasの .loc は、データフレームの行や列をラベルに基づいて選択するためのメソッドです。以下に基本的な使い方を示します。

まず、サンプルのデータフレームを作成します。

import pandas as pd

data = {
    'A': [1, 2, 3],
    'B': [4, 5, 6],
    'C': [7, 8, 9]
}

df = pd.DataFrame(data, index=['row1', 'row2', 'row3'])
print(df)

このコードは以下のようなデータフレームを出力します。

      A  B  C
row1  1  4  7
row2  2  5  8
row3  3  6  9

次に、 .loc を使って特定の行を選択します。

print(df.loc['row1'])

このコードは row1 のデータを出力します。

A    1
B    4
C    7
Name: row1, dtype: int64

また、 .loc を使って特定の列を選択することもできます。

print(df.loc[:, 'A'])

このコードは A 列のデータを出力します。

row1    1
row2    2
row3    3
Name: A, dtype: int64

以上が、Pandasの .loc の基本的な使い方です。次のセクションでは、さまざまなラベルの指定方法について詳しく説明します。

単一ラベルの指定

Pandasの .loc を使って、単一のラベルを指定する方法について説明します。

まず、先ほど作成したデータフレームを再度表示します。

print(df)

出力は以下のようになります。

      A  B  C
row1  1  4  7
row2  2  5  8
row3  3  6  9

次に、 .loc を使って row1 のデータを選択します。

print(df.loc['row1'])

このコードは row1 のデータを出力します。

A    1
B    4
C    7
Name: row1, dtype: int64

また、 .loc を使って A 列のデータを選択することもできます。

print(df.loc[:, 'A'])

このコードは A 列のデータを出力します。

row1    1
row2    2
row3    3
Name: A, dtype: int64

以上が、Pandasの .loc を使った単一ラベルの指定方法です。次のセクションでは、ラベルリストの指定方法について詳しく説明します。

ラベルリストの指定

Pandasの .loc を使って、ラベルのリストを指定する方法について説明します。

まず、先ほど作成したデータフレームを再度表示します。

print(df)

出力は以下のようになります。

      A  B  C
row1  1  4  7
row2  2  5  8
row3  3  6  9

次に、 .loc を使って row1row3 のデータを選択します。

print(df.loc[['row1', 'row3']])

このコードは row1row3 のデータを出力します。

      A  B  C
row1  1  4  7
row3  3  6  9

また、 .loc を使って AC 列のデータを選択することもできます。

print(df.loc[:, ['A', 'C']])

このコードは AC 列のデータを出力します。

      A  C
row1  1  7
row2  2  8
row3  3  9

以上が、Pandasの .loc を使ったラベルリストの指定方法です。次のセクションでは、ラベルのスライスオブジェクトの指定方法について詳しく説明します。

ラベルのスライスオブジェクトの指定

Pandasの .loc を使って、ラベルのスライスオブジェクトを指定する方法について説明します。

まず、先ほど作成したデータフレームを再度表示します。

print(df)

出力は以下のようになります。

      A  B  C
row1  1  4  7
row2  2  5  8
row3  3  6  9

次に、 .loc を使って row1 から row3 までのデータを選択します。

print(df.loc['row1':'row3'])

このコードは row1 から row3 までのデータを出力します。

      A  B  C
row1  1  4  7
row2  2  5  8
row3  3  6  9

また、 .loc を使って A から C 列のデータを選択することもできます。

print(df.loc[:, 'A':'C'])

このコードは A から C 列のデータを出力します。

      A  B  C
row1  1  4  7
row2  2  5  8
row3  3  6  9

以上が、Pandasの .loc を使ったラベルのスライスオブジェクトの指定方法です。次のセクションでは、真偽値リストの指定方法について詳しく説明します。

真偽値リストの指定

Pandasの .loc を使って、真偽値のリストを指定する方法について説明します。

まず、先ほど作成したデータフレームを再度表示します。

print(df)

出力は以下のようになります。

      A  B  C
row1  1  4  7
row2  2  5  8
row3  3  6  9

次に、 .loc を使って A 列の値が 2 より大きい行を選択します。

print(df.loc[df['A'] > 2])

このコードは A 列の値が 2 より大きい行のデータを出力します。

      A  B  C
row3  3  6  9

以上が、Pandasの .loc を使った真偽値リストの指定方法です。次のセクションでは、条件式の指定方法について詳しく説明します。

条件式の指定

Pandasの .loc を使って、条件式を指定する方法について説明します。

まず、先ほど作成したデータフレームを再度表示します。

print(df)

出力は以下のようになります。

      A  B  C
row1  1  4  7
row2  2  5  8
row3  3  6  9

次に、 .loc を使って A 列の値が 2 より大きい行を選択します。

print(df.loc[df['A'] > 2])

このコードは A 列の値が 2 より大きい行のデータを出力します。

      A  B  C
row3  3  6  9

また、複数の条件を組み合わせることもできます。例えば、 A 列の値が 2 より大きく、かつ B 列の値が 5 より小さい行を選択するには、以下のようにします。

print(df.loc[(df['A'] > 2) & (df['B'] < 5)])

このコードは A 列の値が 2 より大きく、かつ B 列の値が 5 より小さい行のデータを出力します。ただし、先ほどのデータフレームでは該当する行は存在しません。

以上が、Pandasの .loc を使った条件式の指定方法です。次のセクションでは、 .loc と他の関数との比較について詳しく説明します。

.locと他の関数との比較

Pandasには .loc の他にも、データフレームから特定のデータを選択するための関数がいくつかあります。ここでは、それらの関数と .loc の違いについて説明します。

.iloc

.iloc は、整数に基づいて行や列を選択するための関数です。.loc がラベルに基づいてデータを選択するのに対し、.iloc は位置に基づいてデータを選択します。

print(df.iloc[0])  # 0番目の行を選択
print(df.iloc[:, 0])  # 0番目の列を選択

.at

.at は、単一のラベルに基づいてデータを選択するための関数です。.loc がラベルのリストやスライスを扱うのに対し、.at は単一のラベルのみを扱います。そのため、単一のデータを選択する際には .at の方が .loc よりも高速です。

print(df.at['row1', 'A'])  # 'row1'の行と'A'の列のデータを選択

.iat

.iat は、単一の整数に基づいてデータを選択するための関数です。.iloc が整数のリストやスライスを扱うのに対し、.iat は単一の整数のみを扱います。そのため、単一のデータを選択する際には .iat の方が .iloc よりも高速です。

print(df.iat[0, 0])  # 0番目の行と0番目の列のデータを選択

以上が、Pandasの .loc と他の関数との比較です。これらの関数を適切に使い分けることで、効率的にデータ分析を行うことができます。

投稿者 kitagawa

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です