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에서 인덱스 열을 제거하는 방법