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에 있고 두 번째 행이 인덱스 1에 있으므로 df.iloc[[4]]를 사용합니다.
  • .loc는 레이블이 지정된 인덱스를 기반으로 행을 선택합니다. 따라서 인덱스 레이블이 5인 행을 선택하려면 df.loc[[5]]를 직접 사용하면 됩니다.

추가 리소스

Pandas DataFrame에서 행 번호를 얻는 방법
Pandas에서 NaN 값이 있는 행을 삭제하는 방법
Pandas에서 인덱스 열을 제거하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다