🖥️ IT, 컴퓨터/🐍 Python

[Python] 파이썬 loc, iloc 차이

김 홍시 2024. 6. 11. 11:16
반응형

lociloc는 파이썬의 데이터 분석 라이브러리인 Pandas에서 데이터프레임을 인덱싱하고 선택하는 데 사용되는 두 가지 주요 방법입니다. 이 두 메서드는 데이터를 선택하는 방법에서 차이가 있습니다.

loc

loc는 라벨을 기반으로 데이터를 선택합니다. 이는 데이터프레임의 행 및 열 라벨을 사용하여 데이터를 선택할 수 있게 해줍니다.

  • 문법: df.loc[row_labels, column_labels]

  • 예시:

    import pandas as pd
    
    data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}
    df = pd.DataFrame(data, index=['one', 'two', 'three'])
    
    # 'two' 라벨을 가진 행과 'B' 라벨을 가진 열 선택
    result = df.loc['two', 'B']  # 5

iloc

iloc는 정수 위치 기반 인덱싱을 사용하여 데이터를 선택합니다. 이는 데이터프레임의 행 및 열 위치(정수 인덱스)를 사용하여 데이터를 선택할 수 있게 해줍니다.

  • 문법: df.iloc[row_indices, column_indices]

  • 예시:

    import pandas as pd
    
    data = {'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]}
    df = pd.DataFrame(data, index=['one', 'two', 'three'])
    
    # 두 번째 행과 두 번째 열 선택 (0 기반 인덱스)
    result = df.iloc[1, 1]  # 5

주요 차이점

  • loc는 라벨(이름) 기반 인덱싱을 사용합니다. 인덱스와 열 라벨을 이용해 데이터에 접근합니다.
  • iloc는 위치(정수) 기반 인덱싱을 사용합니다. 인덱스와 열 번호를 이용해 데이터에 접근합니다.

다음 예시를 통해 차이를 좀 더 명확히 이해할 수 있습니다:

import pandas as pd

data = {'A': [10, 20, 30], 'B': [40, 50, 60], 'C': [70, 80, 90]}
df = pd.DataFrame(data, index=['x', 'y', 'z'])

# loc를 사용하여 'y' 라벨을 가진 행과 'B' 라벨을 가진 열 선택
print(df.loc['y', 'B'])  # 50

# iloc를 사용하여 두 번째 행과 두 번째 열 선택 (0 기반 인덱스)
print(df.iloc[1, 1])  # 50

이처럼 lociloc는 서로 다른 인덱싱 방식을 사용하여 데이터프레임에서 데이터를 선택하는 기능을 제공합니다.

반응형