728x90
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
728x90
'데이터분석과 AI > 빅데이터 분석기사' 카테고리의 다른 글
[빅데이터분석기사 실기][작업형1] pd.melt(), pd.pivot_table()로 데이터 프레임 변형하기 (0) | 2023.06.16 |
---|---|
[빅데이터분석기사 실기][작업형1] Shift로 데이터 이동하기 (0) | 2023.06.09 |
[빅데이터분석기사 실기][작업형1] 그룹화와 정렬 + 멀티인덱싱 (0) | 2023.06.06 |
[빅데이터분석기사 실기][작업형1] 상관관계 구하기 (0) | 2023.05.28 |
[빅데이터분석기사 실기][작업형1] 표준화와 정규화 (0) | 2023.05.27 |
댓글