.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
を使って row1
と row3
のデータを選択します。
print(df.loc[['row1', 'row3']])
このコードは row1
と row3
のデータを出力します。
A B C
row1 1 4 7
row3 3 6 9
また、 .loc
を使って A
と C
列のデータを選択することもできます。
print(df.loc[:, ['A', 'C']])
このコードは A
と C
列のデータを出力します。
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
と他の関数との比較です。これらの関数を適切に使い分けることで、効率的にデータ分析を行うことができます。