데이터프레임의 인덱싱 : at, iloc, loc

2024. 2. 7. 10:42·파이썬/Pandas
반응형

데이터프레임에서 데이터를 접근하는 방법에는 여러 가지가 있지만, 가장 중요한 세 가지 메서드는 at, iloc, loc입니다. 이 세 가지 메서드는 각기 다른 방식으로 데이터에 접근하므로, 상황에 맞는 메서드를 사용하는 것이 중요합니다.

 

1. at 메서드

at 메서드는 레이블(label)을 사용하여 데이터프레임의 특정 위치에 있는 값을 선택합니다. 레이블은 행 인덱스와 열 이름으로 구성됩니다.

 

장점:

  • 직관적이고 명확한 코드 작성 가능
  • 행 이름이나 열 이름을 사용하여 데이터 접근 가능

단점:

  • 레이블이 유일해야 함
  • 레이블이 존재하지 않으면 KeyError 발생
import pandas as pd

df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})

# 'A' 열의 두 번째 행 값 선택
value = df.at[1, 'A']

# 'B' 열의 '3' 행 값 선택
value = df.at['3', 'B']

 

2. iloc 메서드

iloc 메서드는 정수 인덱스를 사용하여 데이터프레임의 특정 위치에 있는 값을 선택합니다. 인덱스는 행 인덱스와 열 인덱스로 구성됩니다.

 

장점:

  • 레이블을 알지 못하더라도 위치를 통해 데이터 접근 가능
  • 빠른 속도

단점:

  • 레이블이 변경되면 인덱스가 변경될 수 있음
  • 인덱스가 유효하지 않으면 KeyError 발생
import pandas as pd

df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})

# 'A' 열의 두 번째 행 값 선택
value = df.iloc[1, 0]

# 'B' 열의 '3' 행 값 선택
value = df.iloc[2, 1]

 

3. loc 메서드

loc 메서드는 레이블 또는 정수 인덱스를 사용하여 데이터프레임의 특정 위치에 있는 값을 선택합니다. loc 메서드는 at 메서드와 iloc 메서드의 장점을 결합한 것으로, 레이블 또는 인덱스를 사용하여 데이터에 접근할 수 있습니다.

 

장점:

  • 레이블과 인덱스 모두 사용 가능
  • 직관적이고 명확한 코드 작성 가능
  • 빠른 속도

단점:

  • 레이블이 유일해야 함
  • 인덱스가 유효하지 않으면 KeyError 발생
# 'A' 열의 두 번째 행 값 선택
value = df.loc[1, 'A']

# 'B' 열의 '3' 행 값 선택
value = df.loc['3', 'B']

# 'A' 열의 모든 값 선택
values = df.loc[:, 'A']

# '3' 행의 모든 값 선택
values = df.loc['3', :]

 

loc 메서드의 추가 기능:

 

슬라이싱:

  • 레이블 또는 정수 인덱스를 사용하여 여러 행 또는 열을 선택할 수 있습니다.
  • 슬라이싱을 사용하여 데이터프레임의 특정 부분을 선택하여 작업할 수 있습니다.
# 'A' 열의 첫 번째부터 세 번째 행까지 선택
values = df.loc[0:2, 'A']

# 'B' 열의 두 번째 열부터 마지막 열까지 선택
values = df.loc[:, 1:]

# '3' 행부터 '5' 행까지, 'A' 열부터 'C' 열까지 선택
values = df.loc[2:4, :3]

 

조건부 선택:

  • loc 메서드는 불리언 표현식을 사용하여 조건에 맞는 행을 선택할 수 있습니다.
  • 조건부 선택을 사용하여 데이터프레임의 특정 부분만 분석하거나 조작할 수 있습니다.
# 'A' 열 값이 2보다 큰 행 선택
values = df.loc[df['A'] > 2, :]

# 'B' 열 값이 '5'인 행 선택
values = df.loc[df['B'] == 5, :]

# 'A' 열 값이 2보다 크고 'B' 열 값이 '5'인 행 선택
values = df.loc[(df['A'] > 2) & (df['B'] == 5), :]

 

데이터프레임 수정:

  • loc 메서드는 선택한 값을 변경하여 데이터프레임을 직접 수정할 수 있습니다.
  • 데이터프레임 수정을 사용하여 데이터를 업데이트하거나 새로운 데이터를 추가할 수 있습니다.
# 'A' 열의 두 번째 행 값을 10으로 변경
df.loc[1, 'A'] = 10

# 'B' 열의 '3' 행 값을 '7'로 변경
df.loc['3', 'B'] = 7

# 'C' 열에 새로운 값 추가
df.loc[:, 'C'] = df['A'] + df['B']

 

결론:

at, iloc, loc 메서드는 데이터프레임에서 데이터를 접근하고 조작하는 가장 중요한 메서드입니다. 각 메서드의 장점과 단점을 이해하고 상황에 맞는 메서드를 사용하면 데이터 분석 작업을 효율적으로 수행할 수 있습니다.

참고:

  • 데이터프레임의 인덱스와 레이블에 대한 자세한 내용은 Pandas 문서를 참조하십시오.
  • 데이터프레임의 데이터 조작에 대한 다양한 방법을 익히면 데이터 분석 작업을 더욱 효율적으로 수행할 수 있습니다.

추가 정보:

  • Pandas 공식 문서: https://pandas.pydata.org/pandas-docs/stable/
  • 데이터프레임 데이터 조작: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html
저작자표시 비영리 변경금지 (새창열림)

'파이썬 > Pandas' 카테고리의 다른 글

Pandas에서 SettingWithCopy 에러 발생 원인과 해결 방법  (0) 2024.01.26
Pandas : DataFrame 합치기  (2) 2024.01.22
저장된 파일을 데이터프레임으로 읽어올 때 na_values, na_filter 매개변수 활용하기  (0) 2024.01.21
ValueError: Cannot mask with non-boolean array containing NA / NaN values  (0) 2024.01.20
Pandas 데이터 필터링 : 원하는 데이터만 골라내기  (0) 2024.01.19
'파이썬/Pandas' 카테고리의 다른 글
  • Pandas에서 SettingWithCopy 에러 발생 원인과 해결 방법
  • Pandas : DataFrame 합치기
  • 저장된 파일을 데이터프레임으로 읽어올 때 na_values, na_filter 매개변수 활용하기
  • ValueError: Cannot mask with non-boolean array containing NA / NaN values
코샵
코샵
나의 코딩 일기장
    반응형
  • 코샵
    끄적끄적 코딩 공방
    코샵
    • 분류 전체보기 (725)
      • 스마트팜 (0)
      • 상품 추천 (223)
      • MongoDB (4)
      • 하드웨어 (17)
      • 일기장 (4)
      • 파이썬 (130)
        • Basic (41)
        • OpenCV (8)
        • Pandas (15)
        • PyQT (3)
        • SBC(Single Board Computer) (1)
        • 크롤링 (14)
        • Fast API (29)
        • Package (6)
      • Unity (138)
        • Tip (41)
        • Project (1)
        • Design Pattern (8)
        • Firebase (6)
        • Asset (2)
      • Linux (4)
      • C# (97)
        • Algorithm (11)
        • Window (7)
      • TypeScript (51)
        • CSS (10)
      • Git (11)
      • SQL (5)
      • Flutter (10)
        • Tip (1)
      • System (1)
      • BaekJoon (6)
      • Portfolio (2)
      • MacOS (1)
      • 유틸리티 (1)
      • 서비스 (6)
      • 자동화 (3)
      • Hobby (10)
        • 물생활 (10)
        • 식집사 (0)
  • 인기 글

  • 태그

    긴유통기한우유
    ipcamera
    유니티
    appdevelopment
    상품 리뷰 크롤링
    unity
    리뷰이관
    리스트
    카페24리뷰
    codingtips
    스크립트 실행 순서
    devlife
    쇼핑몰리뷰
    리뷰관리
    Python
    list
    스마트스토어리뷰
    rtsp
    믈레코비타멸균우유
    cv2
    C#
    카페24리뷰이관
    programming101
    스크립트 실행
    파이썬
    programmerlife
    codingcommunity
    셀레니움
    라떼우유
    learntocode
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코샵
데이터프레임의 인덱싱 : at, iloc, loc
상단으로

티스토리툴바