반응형
loc와 iloc 모두 특정 데이터를 선택하기 위해서 사용된다
근데 둘의 차이점이 있는데
df.loc[ :]
행과 열의 이름(레이블)로 데이터를 선택한다
슬라이싱 시 끝값을 포함함
#문자 레이블인 경우
import pandas as pd
# DataFrame 생성
data = {
'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35],
'City': ['Seoul', 'Busan', 'Incheon']
}
df = pd.DataFrame(data, index=['a', 'b', 'c'])
# loc 사용
print(df.loc['a']) # 인덱스 'a'에 해당하는 행 출력
# Name Alice
# Age 25
# City Seoul
print(df.loc['a':'b']) # 인덱스 'a'부터 'b'까지 (끝값 포함)
# Name Age City
# a Alice 25 Seoul
# b Bob 30 Busan
print(df.loc[:, 'Name']) # 모든 행의 'Name' 열
# a Alice
# b Bob
# c Charlie
#숫자 레이블인경우
import pandas as pd
# 숫자형 인덱스와 열 이름
data = {
0: ['Alice', 'Bob', 'Charlie'], # 열 이름이 숫자
1: [25, 30, 35],
2: ['Seoul', 'Busan', 'Incheon']
}
df = pd.DataFrame(data, index=[1, 2, 3]) # 행 인덱스도 숫자
print(df)
# 0 1 2
# 1 Alice 25 Seoul
# 2 Bob 30 Busan
# 3 Charlie 35 Incheon
# loc를 사용하여 접근
print(df.loc[3, 2]) # 인덱스 3의 열 2 값
# Incheon
df.iloc[행 : 열]
행과 열의 정수위치(숫자)로 데이터를 선택함
슬라이싱 시 끝값을 포함하지 않음
# iloc 사용
print(df.iloc[0]) # 첫 번째 행 출력
# Name Alice
# Age 25
# City Seoul
print(df.iloc[0:2]) # 0번 행부터 2번 행 이전까지 (끝값 포함 안 함)
# Name Age City
# a Alice 25 Seoul
# b Bob 30 Busan
print(df.iloc[:, 1]) # 모든 행의 두 번째 열 ('Age')
# a 25
# b 30
# c 35
[주의]
df.loc의 숫자레이블과 df.iloc 숫자 데이터를 헷갈리지 말자
iloc는 항상 정수 위치를 기반으로 작동하므로, 데이터의 레이블과 상관없이 사용됨
print(df.iloc[2, 1]) # 세 번째 행(인덱스 위치 2), 두 번째 열 (결과: 35)
반응형
'자격증 > 빅데이터분석기사' 카테고리의 다른 글
빅데이터분석기사 독학 필기 합격 후기 수원공업고등학교 (4) | 2024.12.16 |
---|---|
빅데이터분석기사 실기 2과목 회귀모델 데이터 모델링 (0) | 2024.11.17 |
빅데이터분석기사 실기 1과목 날짜시간 데이터 index (0) | 2024.11.16 |
빅데이터분석기사 실기 1과목 데이터 표준화, min-max scaling,데이터 합치기 (0) | 2024.11.15 |
빅데이터분석기사 실기 1과목 실기 데이터 결측치, 이상치, 중복값 처리 (0) | 2024.11.14 |