Pandas dataframe でインデックスによって行を選択する方法


多くの場合、インデックス値に基づいて pandas DataFrame 内の行を選択したい場合があります。

整数インデックスに基づいて行を選択する場合は、 .iloc関数を使用できます。

ラベルのインデックスに基づいて行を選択する場合は、 .loc関数を使用できます。

このチュートリアルでは、これらの各関数を実際に使用する方法の例を示します。

例 1: 整数インデックスに基づいて行を選択する

次のコードは、pandas DataFrame を作成し、 .ilocを使用して整数インデックス値4を持つ行を選択する方法を示しています。

 import pandas as pd
import numpy as np

#make this example reproducible
n.p. random . seeds (0)

#createDataFrame
df = pd. DataFrame ( np.random.rand (6,2),index=range(0,18,3),columns=[' A ' ,' B '])

#view DataFrame
df

	       A B
0 0.548814 0.715189
3 0.602763 0.544883
6 0.423655 0.645894
9 0.437587 0.891773
12 0.963663 0.383442
15 0.791725 0.528895

#select the 5th row of the DataFrame
df. iloc [[4]]

	       A B
12 0.963663 0.383442

同様の構文を使用して複数の行を選択できます。

 #select the 3rd, 4th, and 5th rows of the DataFrame
df. iloc [[2, 3, 4]]

	       A B
6 0.423655 0.645894
9 0.437587 0.891773
12 0.963663 0.383442

または、範囲内のすべての行を選択することもできます。

 #select the 3rd, 4th, and 5th rows of the DataFrame
df. iloc [2:5]

	       A B
6 0.423655 0.645894
9 0.437587 0.891773
12 0.963663 0.383442

例 2: ラベルのインデックスに基づいて行を選択する

次のコードは、pandas DataFrame を作成し、 .locを使用してインデックス ラベル3を持つ行を選択する方法を示しています。

 import pandas as pd
import numpy as np

#make this example reproducible
n.p. random . seeds (0)

#createDataFrame
df = pd. DataFrame ( np.random.rand (6,2),index=range(0,18,3),columns=[' A ' ,' B '])

#view DataFrame
df

	       A B
0 0.548814 0.715189
3 0.602763 0.544883
6 0.423655 0.645894
9 0.437587 0.891773
12 0.963663 0.383442
15 0.791725 0.528895

#select the row with index label '3'
df. loc [[3]]

               A B
3 0.602763 0.544883

同様の構文を使用して、異なるインデックス ラベルを持つ複数の行を選択できます。

 #select the rows with index labels '3', '6', and '9'
df. loc [[3, 6, 9]]

	       A B
3 0.602763 0.544883
6 0.423655 0.645894
9 0.437587 0.891773

.iloc と .loc の違い

上の例は、 .iloc.locの微妙な違いを示しています。

  • .iloc は、整数インデックスに基づいて行を選択します。したがって、DataFrame の 5 行目を選択する場合は、最初の行はインデックス 0、2 行目はインデックス 1 にあるため、df.iloc[[4]] を使用します。
  • .loc は、ラベル付きインデックスに基づいて行を選択します。したがって、インデックス ラベルが 5 の行を選択する場合は、df.loc[[5]] を直接使用します。

追加リソース

Pandas DataFrame で行番号を取得する方法
PandasでNaN値を含む行を削除する方法
Pandasでインデックス列を削除する方法

コメントを追加する

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