Skip to main content
lociloc의 기준이 섞이면 디버깅 시간이 크게 늘어납니다. 라벨과 위치 기준을 명확히 분리해 두면 선택·수정 오류를 빠르게 줄일 수 있습니다.

기준 차이

구분lociloc
기준인덱스/열 라벨정수 위치
슬라이스 끝포함미포함
대표 용도비즈니스 키 기반 접근행/열 오프셋 기반 접근

예시 데이터

import pandas as pd

df = pd.DataFrame(
    {
        "name": ["kim", "lee", "park", "choi"],
        "age": [25, 30, 28, 35],
        "amount": [12000, 9000, 15000, 11000],
    },
    index=["u1", "u2", "u3", "u4"]
)

선택 패턴

# loc: 라벨 기반
rows_loc = df.loc["u1":"u3", ["name", "amount"]]

# iloc: 위치 기반
rows_iloc = df.iloc[0:3, [0, 2]]

# 단일 스칼라 접근
x1 = df.loc["u2", "age"]
x2 = df.iloc[1, 1]

수정 패턴

# 단일 셀
df.loc["u1", "amount"] = 13000

# 조건부 수정
mask = df["amount"] < 10000
df.loc[mask, "amount"] = df.loc[mask, "amount"] * 1.05

실수 패턴

  • df[mask]["amount"] = ... 형태는 SettingWithCopyWarning을 유발할 수 있습니다.
  • 정수형 인덱스일 때 loc[0]iloc[0] 의미를 혼동하기 쉽습니다.

이어서 볼 문서