본문 바로가기
데이터분석과 AI/빅데이터 분석기사

[빅데이터분석기사 실기][작업형1] iloc와 loc를 이용한 데이터프레임 접근

by 우공80 2023. 6. 6.
728x90

iloc, loc

iloc와 loc는 데이터프레임을 다루는 데 있어 기본이 되는 방법입니다.
iloc와 loc에 대해 알기 전에 슬라이싱을 알아야 하니, 혹시 슬라이싱에 익숙하지 않으면 아래 글을 먼저 봐주세요.

 

2023.06.17 - [데이터분석과 AI/빅데이터 분석기사] - [빅데이터분석기사 실기][작업형1] 슬라이싱

 

 

1. loc와 iloc의 차이 - 행

loc는 index에 직접 접근하며, iloc는 index의 순서를 따릅니다.

import pandas as pd

# 데이터 생성
data = {
    'Car': ['Corolla', 'Civic', 'Accord', 'Sonata', 'Optima'],
    'Manufacturer': ['Toyota', 'Honda', 'Honda', 'Hyundai', 'Kia'],
    'MPG': [32, 36, 30, 28, 31],
    'Transmission': ['Automatic', 'Manual', 'Automatic', 'Automatic', 'Manual'],
    'Top_Speed': [120, 110, 115, 105, 112]
}
# 데이터프레임 생성
df = pd.DataFrame(data)

# slicing: loc와 iloc 차이
print(df.loc[:2])

print(df.iloc[:3])

Output: 결과는 모두 동일

       Car Manufacturer  MPG Transmission  Top_Speed
0  Corolla       Toyota   32    Automatic        120
1    Civic        Honda   36       Manual        110
2   Accord        Honda   30    Automatic        115

2. loc와 iloc의 차이 - 열

마지막 두 개의 컬럼을 선택하는 경우 loc라면 컬럼명을 직접 접근해야 하며,

iloc를 쓰는 경우 마지막 자리를 -1로 보고, -2:로 접근하는 것이 용이합니다. 

순서대로 3: 과 같이 쓸 수도 있습니다. 

# slicing: loc와 iloc 차이
print(df.loc[:2,['Transmission','Top_Speed']])

print(df.iloc[:3,-2:])

print(df.iloc[:3,3:])

Output: 결과는 모두 동일

  Transmission  Top_Speed
0    Automatic        120
1       Manual        110
2    Automatic        115

3. 조건절을 사용

DataFrame에서 조건을 걸 때는 &를 써야 합니다. (and가 아님)

또한 연산 우선순위에 따라 괄호를 써주어야 합니다.

# condition : 연비가 30이상이고, 최고속도가 120이상인 차량이름
cond=(df['MPG']>=30) & (df['Top_Speed']>=120)

df.loc[cond,'Car']
0    Corolla
Name: Car, dtype: object


※ 위 내용은 "빅데이터 분석기사 실기 준비를 위한 캐글 놀이터"를 따라가며 공부한 내용입니다.

https://www.kaggle.com/datasets/agileteam/bigdatacertificationkr

 

Big Data Certification KR

빅데이터 분석기사 실기 (Python, R tutorial code)

www.kaggle.com

 

728x90

댓글