언어/파이썬

머신러닝 with 파이썬 2강(2)_데이터선택하기,인덱싱, 슬라이딩

디지털랫드 2024. 2. 29. 17:07

이번 시간에는 데이터의 다양한 선택 방법을 배워보도록 하겠습니다.

이번 시간 정리


1. 열(column) 선택
시리즈 : df['메뉴'] 대괄호 1개
데이터프레임 : df[['메뉴','가격']] 대괄호 2개

2. 행(row)
조건 2개 이상 일때 (and) : df[cond1 & cond2]
조건 2개 이상 이거나 ~일때 (or]) : df[cond1 | cond2]

|이란?
비교 연산자로서 or과 동일한 역할을 합니다. 키보드에서 Shift+(역슬래시. Enter 위쪽에 보통 배치)를 누르면 입력됩니다. 비슷하게 &도 비교 연산자로서 and와 동일한 역할을 합니다.

3. isin 함수
데이터 프레임 안의 요소(리스트 안에 저장된 값)에 isin()에 입력된 데이터 값이 있다면 해당 데이터의 행을 가져온다.
cond = df['호수'].isin(['9호','10호'])
df[cond]

아래의 코드 실행 버튼을 눌러 실습을 진행해 보세요!

 
 
실행 완료
[17]:
0    후라이드
1    양념치킨
2    간장치킨
3    마늘치킨
4      파닭
5     닭강정
6    양반후반
Name: 메뉴, dtype: object
 
 
실행 완료
[18]:
메뉴가격0123456
후라이드 12000
양념치킨 13000
간장치킨 14000
마늘치킨 14000
파닭 14000
닭강정 15000
양반후반 13000
 
 
실행 완료
[19]:
pandas.core.frame.DataFrame
 
 
실행 완료
[20]:
0    False
1    False
2     True
3     True
4     True
5     True
6    False
Name: 가격, dtype: bool
 
 
실행 완료
[21]:
메뉴가격호수칼로리2345
간장치킨 14000 9호 1600
마늘치킨 14000 9호 1800
파닭 14000 11호 1300
닭강정 15000 12호 1500
 
 
실행 완료
[22]:
메뉴가격호수칼로리23
간장치킨 14000 9호 1600
마늘치킨 14000 9호 1800
 
 
실행 완료
[23]:
메뉴가격호수칼로리2345
간장치킨 14000 9호 1600
마늘치킨 14000 9호 1800
파닭 14000 11호 1300
닭강정 15000 12호 1500
 
 
실행 완료
[24]:
메뉴가격호수칼로리01236
후라이드 12000 10호 1000
양념치킨 13000 10호 1400
간장치킨 14000 9호 1600
마늘치킨 14000 9호 1800
양반후반 13000 10호 1300

 

 

인덱싱/슬라이싱


이번 시간에는 원하는 데이터만 선택할 때 활용할 수 있는 인덱싱과 슬라이싱에 대하여
배워보도록 하겠습니다. 숙련이 되면 EDA와 전처리 작업이 수월해진다고 하니 열심히 따라와 주세요!!

[리마인드] 머신러닝 프로세스

  • 1단계 문제 정의
  • 2단계 EDA (탐색적으로 데이터를 보기)
  • 3단계 데이터 전처리
  • 4단계 모델학습
  • 5단계 예측

이번 시간 정리


loc와 iloc를 비교해 봅시다.

1. loc
인덱스명(1,2,3,), 컬럼 명(메뉴, 가격, 호수)을 통해서 데이터를 선택

2. iloc
인덱스 번호(범위), 컬럼 번호(범위) 통해서 데이터를 선택

<특징> 범위를 설정할때 끝에 +1을 더해줘야 한다. (예시:0과 1을 선택하고 싶다면 --> 0:2로 기재)

이제 아래의 코드 실행 버튼을 눌러 실습을 진행해 보세요!

 
 
실행 완료
[25]:
메뉴가격호수칼로리0123456
후라이드 12000 10호 1000
양념치킨 13000 10호 1400
간장치킨 14000 9호 1600
마늘치킨 14000 9호 1800
파닭 14000 11호 1300
닭강정 15000 12호 1500
양반후반 13000 10호 1300
 
 
실행 완료
[26]:
메뉴가격호수칼로리indexabcdefg
후라이드 12000 10호 1000
양념치킨 13000 10호 1400
간장치킨 14000 9호 1600
마늘치킨 14000 9호 1800
파닭 14000 11호 1300
닭강정 15000 12호 1500
양반후반 13000 10호 1300

1. loc

  • 인덱스 명
  • 인덱스 명(범위), 컬럼 명(범위)
 
 
실행 완료
[27]:
메뉴      후라이드
가격     12000
호수       10호
칼로리     1000
Name: a, dtype: object
 
 
실행 완료
[28]:
index
a    12000
b    13000
c    14000
d    14000
e    14000
f    15000
g    13000
Name: 가격, dtype: int64
 
 
실행 완료
[29]:
13000
 
 
실행 완료
[30]:
메뉴가격호수칼로리indexabcdefg
후라이드 12000 10호 1000
양념치킨 13000 10호 1400
간장치킨 14000 9호 1600
마늘치킨 14000 9호 1800
파닭 14000 11호 1300
닭강정 15000 12호 1500
양반후반 13000 10호 1300
 
 
실행 완료
[31]:
메뉴     간장치킨
가격    14000
Name: c, dtype: object
 
 
실행 완료
[32]:
메뉴     간장치킨
칼로리    1600
Name: c, dtype: object
 
 
실행 완료
[33]:
메뉴가격indexbcd
양념치킨 13000
간장치킨 14000
마늘치킨 14000

2. iloc

  • 인덱스 번호
  • 인덱스 번호(범위), 컬럼 번호(범위)
 
 
실행 완료
[34]:
메뉴가격호수칼로리indexabcdefg
후라이드 12000 10호 1000
양념치킨 13000 10호 1400
간장치킨 14000 9호 1600
마늘치킨 14000 9호 1800
파닭 14000 11호 1300
닭강정 15000 12호 1500
양반후반 13000 10호 1300
 
 
실행 완료
[35]:
메뉴      후라이드
가격     12000
호수       10호
칼로리     1000
Name: a, dtype: object
 
 
실행 완료
[36]:
index
a    12000
b    13000
c    14000
d    14000
e    14000
f    15000
g    13000
Name: 가격, dtype: int64
 
 
실행 완료
[37]:
메뉴     간장치킨
가격    14000
Name: c, dtype: object
 
 
실행 완료
[38]:
메뉴가격호수칼로리indexbc
양념치킨 13000 10호 1400
간장치킨 14000 9호 1600