안녕하세요 늑대양입니다 :)
오늘은 [AI 데이터 사이언티스트 취업 완성 과정]의 3일차 일과를 정리하여 안내해드리도록 하겠습니다.

Day 3. 온라인 학습 범위:
- 21강
- 예상 학습 시간: 4:55:15
대주제(Part) | 중주제(Chapter) | 소주제(Clip) |
Part.2 파이썬 익숙해지기 | Chapter.03 DataFrame | CH03_01. 엑셀보다 더 강력한 pandas와 Dataframe |
Part.2 파이썬 익숙해지기 | Chapter.03 DataFrame | CH03_02. 데이터선택(1) indexing _ 엑셀 필터링 노가다는 그만! |
Part.2 파이썬 익숙해지기 | Chapter.03 DataFrame | CH03_03. 데이터선택(2) slicing 데이터 위치를 활용한 데이터 가공 .loc, .iloc, .ix |
Part.2 파이썬 익숙해지기 | Chapter.03 DataFrame | CH03_04. 데이터삭제 drop |
Part.2 파이썬 익숙해지기 | Chapter.03 DataFrame | CH03_05. 자동화 기초(1) read_excel 엑셀 파일 불러오기 |
Part.2 파이썬 익숙해지기 | Chapter.03 DataFrame | CH03_06. 엑셀보다 빠른 피봇 테이블(Pivot Table) |
Part.2 파이썬 익숙해지기 | Chapter.03 DataFrame | CH03_07. 자동화 기초(2) to_excel 파일을 엑셀로 저장해보기 |
Part.2 파이썬 익숙해지기 | Chapter.03 DataFrame | CH03_08. EDA 기초(1) 데이터 분포 탐색 |
Part.2 파이썬 익숙해지기 | Chapter.03 DataFrame | CH03_09. EDA 기초(2) 유의미한 데이터 집계 |
Part.2 파이썬 익숙해지기 | Chapter.03 DataFrame | CH03_10. merge 여러 데이터를 한 테이블로 만들기 |
Part.2 파이썬 익숙해지기 | Chapter.04 시각화 | CH04_01. 그래프 - 막대그래프, 누적막대그래프, 묶은 막대그래프 |
Part.2 파이썬 익숙해지기 | Chapter.04 시각화 | CH04_02. 차트 - 파이차트와 도넛차트 |
Part.2 파이썬 익숙해지기 | Chapter.04 시각화 | CH04_03. 두 변수의 관계를 나타내는 '산점도' |
Part.2 파이썬 익숙해지기 | Chapter.04 시각화 | CH04_04. 열분포 형태의 그래픽 '히트맵' |
Part.2 파이썬 익숙해지기 | Chapter.04 시각화 | CH04_05. 도수분포표와 히스토그램 |
Part.2 파이썬 익숙해지기 | Chapter.04 시각화 | CH04_06. 시계열 데이터 시각화 |
Part.2 파이썬 익숙해지기 | Chapter.04 시각화 | CH04_07. 카토그램 _ 공간분석의 첫걸음, 우버에서 제공하는 h3 |
Part.2 파이썬 익숙해지기 | Chapter.05 파이썬 예외처리 | CH05_01. 에러에 대처하는 자세 |
Part.2 파이썬 익숙해지기 | Chapter.06 파이썬 함수 및 입력 | CH06_01. 뗄 수 없는 관계 '프로그래밍과 함수' |
Part.2 파이썬 익숙해지기 | Chapter.06 파이썬 함수 및 입력 | CH06_02. input 사용법 |
Part.2 파이썬 익숙해지기 | Chapter.07 실전 프로젝트 | CH07_01. Project1 _ 파이썬 총정리 프로젝트 |
Chapter.03 DataFrame:
1. 엑셀보다 더 강력한 pandas와 Dataframe:
Dataframe:
- 엑셀,테이블, 데이터
- 데이터 가공, 집계, 시각화가 가능한 필수템
- 엑셀보다 빠르고 쉽다!
- 노가다를 줄여준다.
- 꼭 가져가자!
- 사용을 위해서 pandas가 필요
pandas:
- 누군가가 나를 위해
- 엑셀처럼 데이터를 가공할 수 있게함
- DataFrame (대소문자 구별!!)
2. 데이터선택(1) indexing _ 엑셀 필터링 노가다는 그만!
Dataframe:
- index 와 columns 를 잘 사용해야 반복 작업을 줄일 수 있다!
- Index = 행
- columns = 열
3. 데이터선택(2) slicing: 데이터 위치를 활용한 데이터 가공 .loc, .iloc, .ix
- 엑셀의 필터 기능과 비슷한 역할을 함
4. 데이터삭제 drop:
데이터 삭제:
drop:
- 필요없는 데이터를 삭제해보자!
- 행(Index), 열(column) 단위로 삭제
중복 데이터 삭제:
duplicated:
- 데이터 중복 여부를 true, false로 반환
- keep: 중복이 있다면 처음과 마지막 값 중 무엇을 중복이라고 판단할 것인가?
drop_duplicates:
- 중복된 데이터를 삭제
- keep: 중복이 있다면 처음과 마지막 값 중 무엇을 남길 것인가? (맨 마지막?, 맨 처음? 이것을 판단해줌)
5. 자동화 기초(1) read_excel: 엑셀 파일 불러오기:
read_excel:
- 액셀, csv, txt 같은 데이터가 담긴 파일들을 read
- read_excel, read_csv, read_table
데이터 다운로드:
Shopping Cart Database
Synthetic data for e-commerce shopping
www.kaggle.com
- customers.csv
- orders.csv
- products.csv
- sales.csv
폴더 및 파일 업로드 후, 구글 드라이브 마운트 진행
6. 엑셀보다 빠른 피봇 테이블(Pivot Table):
피봇 테이블:
- 엑셀의 피벗기능과 동일
import pandas as pd
import numpy as np
agg_prd_df = pd.pivot_table(products_df, index='product_type',
columns='size', values='quantity', aggfunc=np.sum)
7. 자동화 기초(2) to_excel 파일을 엑셀로 저장해보기:
to_excel: DataFrame을 파일로 저장
import pandas as pd
agg_prd_df.to_excel('/경로/agg_products_data.xlsx', index=None)
# index=None
# 인덱스를 포함해서 데이터를 저장하느냐 아니면 인덱스를 포함하지 않고 엑셀 파일로 저장하느냐의 문법
8. EDA 기초(1) 데이터 분포 탐색:
EDA(Exploratory Data Analysis, 탐색적 데이터 분석):
- (데이터를 처음 봤을 때) 어떤 데이터가 어떤 data type인지 파악하고!
- 결측치(데이터를 측정하지 못하는 것), 이상치(이상한 데이터) 데이터를 확인/처리하고!
- 이러한 내용을 잘 정리/시각화 하는 것!!
9. EDA 기초(2) 유의미한 데이터 집계:
엑셀의 피벗 기능과 동일
groupby: 피벗 테이블에서 행을 지정하는 것과 동일
agg: 피벗 테이블에서 값을 지정하는 것과 동일
10. merge 여러 데이터를 한 테이블로 만들기:
merge:
- SQL의 join과 동일
- 엑셀의 vlookup과 동일
- 흩어져 있는 데이터들을 한 데이터로 결합
- df=pd.merge(left_df, right_df, on=' ', how=' ')
- (중요) on 절에 들어가는 key 명칭이 left_df, right_df와 동일해야 함!!
- 데이터를 다룰 때, 자주 사용하므로 익숙해지도록 노력하자!!
Chapter.04 시각화:
1. 그래프 - 막대그래프, 누적막대그래프, 묶은 막대 그래프:
시각화가 중요한 이유:
- 데이터를 숫자로 보여주는 것보다 시각화하는 것이 상대방 입장에서 훨씬 더 이해하기 쉽고, 설득력 있음
- 적절한 시각화 기법을 사용하는 것이 중요
막대그래프, 누적막대그래프, 묶은 막대 그래프: 데이터 별 수치를 비교하기 쉬운 기본 그래프
2. 차트 - 파이차트와 도넛차트:
파이차트(Pie Chart, Circle Graph)와 도넛차트(Donut Chart):
- 백분율을 표현하기에 가장 좋은 차트
- 도넛차트의 장점: 가운데 부분에 강조하고 싶은 항목의 비율을 나나낼 수 있음!
3. 두 변수의 관계를 나타내는 '산점도':
산점도(Scatter Plot):
- 데이터의 흩어짐 정도를 알 수 있음
- 데이터의 대략적인 상관관계와 Outlier 데이터를 확인할 수 있음
4. 열분포 형태의 그래픽 '히트맵':
히트맵(heat map):
- 열을 뜻하는 히트(heat)와 지도를 뜻하는 맵(map)을 결합시킨 단어
- 데이터를 색상으로 표현
- 강조하고 싶은 분석 결과가 있을 때, 히트맵으로 시각화하면 더욱 효과적!
- 데이터의 높낮이 표현을 통해 효과적으로 정보 전달 가능
5. 도수분포표와 히스토그램:
도수분포표(frequency table):
- 몇 개의 계급으로 나누고, 각 계급의 도수를 조사하여 자료의 분포 상태를 나타낸 표
- 도수분포표를 트래킹하는 것만으로 의미 있는 분석이 가능
계급값(class mark): 도수분포표에서 각 계급을 대표하는 값으로서, 그 계급의 중앙값
히스토그램(histogram): 도수의 분포 상태(도수분포표)를 보다 쉽게 알아볼 수 있게 그린 그래프
6. 시계열 데이터 시각화:
시계열 데이터: 일정 시간 간격으로 배치된 데이터들의 수열
시계열 구성 요인:
- 추세 (순환, Trend)
- 순환 (Cycle) (추세와 순환을 묶어서 보기도함)
- 계절성 (Sesonality)
- 불규칙 요인 (Irregular, Noise, Remainder)
이동평균선(Moving Average):
- 과거 일정기간의 수치들로 추세 파악 가능
- 단, 예측 지표는 아니기 때문에 보조 지표로만 활용해야 함
시계열 가법 모델 활용: 시간이 지남에 따라 직관적으로 확인 가능
7. 카토그램 _ 공간분석의 첫걸음, 우버에서 제공하는 h3
카토그램(Catogram): 특정한 데이터 값의 변화에 따라 지도의 면적이 왜곡되는 그래프
h3:
- Uber에서 개발
- 특정 공간을 육강형(셀, 공간을 가장 잘 나눌 수 있는 도형)으로 나누어 해당 구역의 데이터 값으로 시각화 가능
- Resolution 값 설정
- 빅데이터도 활용 가능 (Tableau, 엑셀은 불가)
Chapter.05 파이썬 예외처리:
1. 에러에 대처하는 자세
에러 발생:
- 코드를 잘 작성하더라도 예상치 못한 상황에 의해 에러가 발생하는 경우가 있음
- 에러가 발생하면, 프로그램은 중단되고 에러 메세지를 반환
- 에러가 발생하더라도 프로그램이 잘 동작하도록 예외 사항 처리를 할 수 있음
# 예제
try:
코드
except:
에러가 발생했을 시 수행
else:
에러가 없을 경우에 수행
try:
"직업을 입력해주세요."
except: # 사용자가 숫자를 입력
"숫자를 입력하였습니다. 올바르게 작성해주세요."
else:
"직업이 기록되었습니다."
Chapter.06 파이썬 함수 및 입력:
1. 뗄 수 없는 관계 '프로그래밍과 함수':
파이썬 함수:
- (원시 시대에) 주스를 먹고 싶으면 주스를 먹을 때마다 손으로 과일의 즙을 짰다.
- 너무 귀찮으니, 과일을 갈아주는 기계를 만들자! 해서 믹서가 탄생
- 이젠 과일(input)만 믹서(함수)에 넣으면 힘들이지 않고 주스(output)가 생성된다.
- 함수는 일일이 손으로 즙을 짜지 않도록 주스를 만드는 믹서와 같다!
2. input 사용법:
input() 사용법: 사용자가 입력한 값을 변수로 저장할 수 있음
job = input("직업을 입력해주세요: ")
for 문 사용법:
student = ['Susan', 'Jessica', 'John', 'Michael']
for i in student:
print(i)
if 문 사용법:
for i in student:
if i == "Jessica":
print("Jessica님 안녕하세요.")
elif i == "Susan":
print("Susan님 안녕하세요.")
else:
print("안녕하지 못해요..")
Chapter.07 실전 프로젝트:
1. Project1 _ 파이썬 총정리 프로젝트:
Day 3. 프로그래밍 기초 : Python
원활한 온오프라인 병행 학습을 위한 환경 셋팅:
- 오프라인: 볼륨 X (하울링 방지)
- 온라인: 마이크 X
리스트, 튜플, 셋, 딕셔너리와 같은 연속형 데이터(Sequential Data Types) 까지 다룰 예정
파이썬 코딩 연습 방안:
- 국내: 프로그래머스 추천
- 해외까지 아우르는 리트코드 추천
슬랙을 잘 사용하도록하자!!
3. 연속형 데이터 (Sequential Data Types):
하나의 데이터를 하나의 변수로 관리하는 것은 어려움 > 이걸 해결하기 위한 연속형 데이터
3.1 리스트(List):
- 파이썬에서 가장 많이 사용하는 데이터 타입
- 유연한 구조를 갖고있음 (막써도 됩니다...ㅇㅅㅇ..)
- Python lists are heterogeneous and thus elements of a list may contain any object type
- 리스트는 모든 데이터 타입이 전부 들어갈 수 있다.
- mutable object
- 리스트는 대괄호로 시작과 끝을 표시, 쉼표로 구분
- 비어있는 리스트도 생성 가능
# 비어있는 리스트 표현 방식 두 가지:
L1 = []
L2 = list()
3차원 이상을 많이 사용 (다차원) > 다차원은 넘파이 때 많이 연습해볼 수 있음
- 1차원 벡터
- 2차원 행렬
- 3차원 텐서
리스트는 다양한 연산이 가능!
- 리스트 더하기
- 리스트 곱하기
- 리스트 수정하기
- update (overwrite) 개념
- 업데이트되면 절대로 다시 돌아올 수 없다!!!
Indexing:
- 특정 조건을 만족하는 원소를 찾는 것 = 원소에 접근한다.
- 접근하려면 주소를 알아야함 (어디에 있는지)
- 가장 쉬운 방법: 방 번호(주소)를 제공하는 것 (0부터 스타트!)
- 뒤에서부터 세는 것도 제공(네거티브 인덱싱)
- 0부터 시작하는 파지티브 인덱싱 or 뒤(맨 끝 데이터)에서부터, -1 에서부터 시작하는 네거티브 인덱싱을 사용 가능
# 리스트 인덱싱 연습 예제
L = [1, 2, 3, 4, 5]
# L의 첫 번째 원소:
L[0]
>1
# L의 다섯 번째 원소:
L[4]
>5
# L에 없는 index는?
L[7]
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
Input In [5], in <cell line: 2>()
1 # L에 없는 index는?
----> 2 L[7]
IndexError: list index out of range
# L의 마지막 원소
L[4]
L[len(L)-1]
L[-1]
>5
# 이해의 흐름
# L[-3] >> L[2] = L[5-3] = L[len(L)-3]
# indexing을 이용한 연산. L의 첫번째, 두번째 원소를 가져다가 더해봅니다.
L[0] + L[1]
> 3
L2 = [1, [2, 3], 5]
L2
# L2에서 2에 접근하기 위해 indexing을 해보자.
L2[1][0]
>2
Slicing:
- 시작은 리스트의 일부를 잘라서 가져오고 싶어서 만들어짐
- 숫자가 100개 있을 때, 20개를 갖고 오고 싶을 수도 있음
- 인덱싱 20번 하면 할 수는 있는데 귀찮아짐
- '인덱스를 기준으로 자르는 것'으로 정의를 시작
- '여기서부터 여기서까지 잘라야지' = 조건을 만족하는 원소를 뽑는다!
나중에 데이터 분석할 때(넘파이, 판다스)는 필터링 또는 서치의 기능을 하게됨 (겁나게 많이 사용함)
슬라이싱의 규칙:
- 마지막 인덱스 값을 포함하지 않음 (미만조건)
# 슬라이싱 예제 연습
L = [1, 2, 3, 4, 5]
L
# L의 첫번째부터 index2 까지 자르기
L[0:3]
>[1, 2, 3]
# L의 두번째부터 index4 까지 자르기
L[1:5]
>[2, 3, 4, 5]
# 시작 index를 생략하면, 자동으로 index는 0이 된다. (맨 처음)
# 뒤 인덱스 값만큼 표현한다고 이해해도 좋다! ex) L[:3] > 처음부터 세 개의 숫자를 표현!
# 앞에서부터 두 개라고 생각해도 좋다!
# 생각하면 당연한 거고 외워도 좋고 하다보면 익숙해진다!
L[:2]
>[1, 2]
# 끝 index를 생략하면, 자동으로 index는(리스트의 길이)가 된다. (맨 마지막) Q. 왜 리스트의 길이일까?
L[1:] # L[1:len(L)]
>[2, 3, 4, 5]
# 슬라이싱 한 단계 더! > 스탭!
# L[start:end:step]
# L[start], L[start+step], ... , L[end-1]
L = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
L[0:len(L):2]
>[1, 3, 5, 7, 9]
L[::3]
>[1, 4, 7, 10]
# 리스트를 거꾸로 나열하는 테크닉 # reverse
L[::-1]
>[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
인덱싱과 슬라이싱:
- 튜플, 리스트, 문자열(캐릭터 시퀀스로 정의 되어서 이 친구도 가능)에서 사용 가능
리스트 관련 함수:
append():
# append() 예제
# 빈 리스트 L을 만들어서 3, 2, 1 순서대로 원소를 추가해봅니다.
# append 는 실행한 순서대로, 차곡차곡 쌓임
L = []
L.append(3)
L.append(2)
L.append(1)
L
>[3, 2, 1]
sort():
# sort() 예제
# sort() 함수도 비가역적으로 작동
# sort()를 이용해 L을 정렬합니다.
L = [4, 3, 16]
L.sort()
L
>[3, 4, 16]
# sort()를 이용해 L을 역정렬합니다.
L = [4, 3, 16]
L.sort(reverse=True)
L
>[16, 4, 3]
reverse():
# reverse() 예제
#L.reverse() # reverse()와 같은 결과를 내는 신박한 방법도 있습니다.
L.reverse()
L
>[16, 4, 3]
>[3, 4, 16]
>[16, 4, 3]
# L(::-1)과 동일한 효과
pop():
# pop() 예제
# append()와 반대 기능
# 뒤에서부터 순서대로 하나씩 날려버림
# 비가역적
L
>[3, 4, 16]
L.pop()
>16
L.pop()
>4
L.pop()
>3
L.pop()
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
Input In [69], in <cell line: 3>()
1 # append()와 반대 기능
2 L
----> 3 L.pop()
IndexError: pop from empty list
cf) AI 트렌드 정보를 얻을 수 있는 곳:
1. 가장 큰 곳: 페이스북 그룹 - 텐서플로우 코리아, 파이토치 코리아, 캐글 코리아 등등 (가장 핫한 AI 인력들이 있음)
2. 오픈톡방: 케라스 코리아 텐서플로우 코리아, 파이토치 코리아 등등 분야 별로 다 있음
3. 트위터: 해외 유명한 사람들이 많음 (AI 인플루언서 등등, 해외의 메인 SNS), 살아있는 인사이트, (덕력이 있다면 좋다)
4. 커뮤니티 가입: 모두의연구소, 가짜연구소 등등, 네이버의 DEVIEW, 카카오의 if Kakao, 토스의 SLASH, 세미나, 웨비나
링크드인은 다 연결해야 정보를 얻을 수 있음 (약간 프라이빗한 느낌, 정보를 얻으려면 노력을 해야함, 연결이 되면 좋은 정보 겟 가능)
클럽하우스: 매주 일요일 10시에 논문을 발표
Day 2. 내용 중 추가! > split() , replace()
split():
자르다! > 나눠줌!
# split() 예제
# 아무것도 넣지 않을 경우, 스페이스를 기준으로 나뉨
s = "Life is too short."
s.split()
> ['Life', 'is', 'too', 'short.']
# 자르는 기준을 토큰이라고 함
s = "Life is too short."
s.split('is') # 'is' 가 토큰(기준)이 됨
>['Life ', ' too short.']
s = "Life is too short."
s.split('i')
>['L', 'fe ', 's too short.']
replace():
치환! > 직접 바꿔주어도 되기는 하지만... 잘못써서 다 바꿔주어야 할 때 사용
# replace() 예제
s = "Life is too short."
# Life를 This pencil로 바꿔봅시다.
s.replace("Life", "This pencil")
>'This pencil is too short.'
# 지우고 싶은 대상을 지울 수도 있음
s = "Life is too short."
s.replace(" ", "")
>'Lifeistooshort.'
3.2 튜플(Tuple):
5분컷 가능
tuple은 list와 매우 유사하다
거의 비슷하지만, 다른 점이 딱 2가지가 있다!!
1. list는 [ ] 를 사용하고, 튜플은 ( ) 를 사용한다!
2. list는 생성 후에 변경이 가능(mutable)하고 튜플은 생성 후에 변경이 불가능(immutable)하다.
Mutable : 생성된 이후에 변경(assignment)이 자유롭게 가능한 data type. e.g. List, dict, set
immutable : 생성된 이후에 변경이 불가능한 data type e.g. int, float, string, tuple, frozenset
immutable: assignement operator( = ) 를 통해서 수정이 불가능한 데이터 타입
set은 = 말고 다른 방식으로 데이터 변경 가능
리스트가 생성될 때, 리스트 크기의 1.6배 정도의 메모리를 할당
튜플은 얄짤없이 딱 할당
# 튜플 예제
# 1, 2를 원소로 가지는 tuple을 생성해 봅니다.
t = (1, 2)
t
>(1, 2)
# 튜플 데이터 변경 테스트
t[0] = 3 # 튜플의 원소를 변경해보자.
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
Input In [75], in <cell line: 1>()
----> 1 t[0] = 3
TypeError: 'tuple' object does not support item assignment
# 튜플은 데이터 변경 불가능!
3.3 집합(Set):
집합 자료형은 수학 시간에 배우는 집합 그 자체!
중괄호 사용
집합의 중요한 특징 두 가지:
1. 집합은 원소의 중복을 허용하지 않는다! (존재 자체가 있냐 없냐를 따짐, 유니크 밸류 그 자체) (multi-set: 중복이 허용되는 집합)
2. 집합은 원소의 순서가 존재하지 않는다! (인덱스 자체가 없으며, 인덱싱이 안됨)
교집합, 합집합, 차집합을 아름답게 구현 가능
# 집합 예제
# 1, 2, 3을 원소로 가지는 집합을 만들어 봅시다.
s = {1, 2, 3}
s, type(s)
>({1, 2, 3}, set)
# 집합 인덱스 테스트
s[1] # 2가 나올것 같지만...
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
Input In [77], in <cell line: 1>()
----> 1 s[1]
TypeError: 'set' object is not subscriptable
# 집합의 연산 테스트
s1 = {1, 2, 3, 4, 5}
s2 = {3, 4, 5, 6, 7}
# 교집합
# s1 과 s2의 교집합
s1 & s2
>{3, 4, 5}
# 교집합 표현 ## 함수를 통한 표현은 빈도가 매우 낮음
s1.intersection(s2) # s1과 s2의 자리를 바꿔서 당연히 같다.
s2.intersection(s1) # 교환법칙 성립
>{3, 4, 5}
# 합집합
# s1과 s2의 합집합
s1 | s2
>{1, 2, 3, 4, 5, 6, 7}
# 차집합
# s1과 s2의 차집합
s1 - s2
>{1, 2}
s2 - s1 # 당연히 다르다.
>{6, 7}
# 집합의 원소의 uniqueness를 활용하는 경우
L = [1, 1, 2, 2, 3, 3, 3, 3, 4, 5, 6, 7]
L2 = [1, 8, 10, 1, 2, 3, 3, 4, 1, 5, 6]
L
>[1, 1, 2, 2, 3, 3, 3, 3, 4, 5, 6, 7]
set(L)
>{1, 2, 3, 4, 5, 6, 7}
# L과 L2에 겹치는 숫자를 찾아주세요!
set(L) & set(L2)
>{1, 2, 3, 4, 5, 6}
집합 관련 함수:
add(): 집합에 원소 하나 추가하기
# add() 함수 예제
s = set()
s.add(7)
s.add(15)
s.add(1)
s # 최신 python 버전에서는 정렬해서 출력해줌
>{1, 7, 15}
update(): 집합에 여러 원소 추가하기
# update() 함수 예제
s = {1, 2, 3}
s.update({1, 5})
s.update([4, 5]) # 꼭 집합일 필요는 X
s
>{1, 2, 3, 4, 5}
remove(): 집합에서 원소 제거하기
# remove() 함수 예제
# s = {1, 2, 3, 4, 5}
s.remove(3) # 그냥 그 원소를 뽑아서 날려버림 > 순서가 없기 때문에!
s
>{1, 2, 4, 5}
사전(Dictionary)은 내일 진행!!! 가쥬아아앗!!

긴 글 읽어주셔서 감사합니다 :)
'AI > [부트캠프] 데이터 사이언티스트 과정' 카테고리의 다른 글
[Megabyte School : AI 데이터 사이언티스트 취업 완성 과정] Day 5. (0) | 2022.08.26 |
---|---|
[Megabyte School : AI 데이터 사이언티스트 취업 완성 과정] Day 4. (0) | 2022.08.25 |
[Megabyte School : AI 데이터 사이언티스트 취업 완성 과정] Day 2. (0) | 2022.08.23 |
[Megabyte School : AI 데이터 사이언티스트 취업 완성 과정] Day 1. (0) | 2022.08.22 |
[Megabyte School : AI 데이터 사이언티스트 취업 완성 과정] Intro. (0) | 2022.08.22 |