일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 2022청년희망적금
- 고등동 브런치 카페
- 청년희망적금 가입자격
- 내돈내산
- 수감자탕판교
- 로우테라스
- 청년희망적금 가입방법
- 수감자탕판교점
- 가로수길 와인샵
- 판교카페오디너리벗
- 파주애견동반
- 파이썬
- 판교감자탕
- 고등동카페
- 서평
- 오니더리벗
- 고등동 로우테라스
- 오설록 티하우스 성수
- 판교 애견동반 카페
- 청년희망적금 혜택
- 파이썬기초
- 가로수길 와인바
- 수감자탕
- 판교 로우테라스
- 분당감자탕
- 만수정본점
- 판교 애견동반 식당
- 애견동반카페
- 만수정장어
- 하트시그널장어
- Today
- Total
꼬꼬마 기획자(를 꿈꾸는)
#3. Google Colab을 이용한 파이썬 독학(반복문, list comprehension, 문자열, import) 본문
01 반복문
- 반복해서 해야 할 일이 있을 때 사용함
- "a = 1" 식의 단일 숫자가 아닌 list, dict, set과 같은 집합일 때 반복문이 사용 가능함
mylist = [1,2,3,4,5,6,7,8,9,10]
# 여기서 mylist에 있는 숫자들을 출력 할 때
print(mylist[0])
print(mylist[1])
...
print(mylist[9])
이런 식으로 노가다가 아닌, 반복문을 통해 간단하게 출력할 수 있음
반복문은 for와 in을 사용한다
| for문 구조
for a in mylist
for 하나씩 가져올 변수 in 리스트
👉 "리스트 안에 있는 변수를 하나씩 가져와 for(반복문)을 돌릴 것이다"
[for문을 이용해 숫자 출력하기]
mylist = [1,2,3,4,5,6,7,8,9,10]
# 여기서 mylist에 있는 숫자들을 반복문으로 출력 할 때
for a in mylist:
print(a)
# 결과값 1 2 3 ...10
# a 안에 1이 들어가서 출력되고, 그다음 2가 들어가서 출력되고...10이 출력된 것
[for와 if문을 이용해 짝수만 출력하기]
#mylist에서 짝수만 출력하기
mylist = [1,2,3,4,5,6,7,8,9,10]
for i in mylist:
if i % 2 == 0:
print(i)
# 2,4,6,8,10
# if i % 2 == 0 -> 2로 나눈 나머지가 0일 시
1.1 continue
continue구문을 쓰면 continue 밑의 로직은 skip 된다.
for i in mylist:
if i % 2 == 1:
continue
print(i)
# 결과값 2, 4, 6, 8, 10
# continue가 홀수 출력을 무시한 것
# 2로 나눴을 때 나머지가 1이면 continue print(i) --> 2로 나눴을 떄 나머지가 1이면 print 무시해라
👉 원래 continue가 없으면 print(i)를 통해 나머지 1인 홀수들 출력해야 하는데, continue가 밑의 로직인 print(i)를 skip 해서 홀수들이 출력되지 않은 것.
1.2 break
말 그대로 break!🖐
반복문이 돌다가 stop 해 반복문을 종료하고 빠져나옴
# i가 7이상이면 break하기
mylist = [1,2,3,4,5,6,7,8,9,10]
for i in mylist:
if i >=7:
break
print(i)
# 결과값 1,2,3,4,5,6
# 7이상인 수에서 7을 만난 순간 바로 break걸림, 1~6까지의 숫자만 출력됨
**continue는 continue의 밑의 부분만 실행을 안 하게 되고, 나머지 것은 돌지만 break은 바로 종료됨
02 List Comprehension
- List를 사용
- for in 구조를 기본적으로 갖고 있음
[mylist에서 짝수의 수만 출력 후 짝수들로 list 만들고 싶을 때]
# mylist에서 짝수들만 추출 후 이를 다른 list로 만들고 싶을 때
mylist = [1,2,3,4,5,6,7,8,9,10]
even = []
for i in mylist:
if i % 2 ==0:
even.append(i)
print(even)
# 결과값 [2,4,6,8,10]
# even이라는 새로운 빈 list를 만들어 준다
# 그리고 mylist 2로 나눴을 때 나머지가 0인 수들만 even이라는 list에 append한다(붙인다).
"list comprehension 조건 필터는,위의 긴 조건식을 한 줄에 해결해준다!"
# list comprehension을 이용해 짝수만 존재하는 list 만들기
mylist = [1,2,3,4,5,6,7,8,9,10]
even = [i for i in mylist if i % 2 ==0]
even
#결과값 [2,4,6,8,10]
| list comprehension 구조
even = [ i for i in mylist if i % 2 ==0 ]
(변수 / 반복문 / 조건문)
- i : 새로 만드는 리스트에 담기는 변수(조건을 만들어줬을 때 변수) -> 변수
- for i in mylist : mylist 하나하나 돌면서 그것을 i라는 변수에 넣어줘 -> 반복문
- if i % 2 ==0 : 만일 i를 2로 나눠 나머지가 0이라면 -> 조건문
👉 mylist에 있는 변수(i)들을 하나하나 보고, 그것이 만약 짝수라면 새로 만드는 even 리스트에 i를 넣어줘
| list comprehension 만들기
[STEP 1] for문이 포함된 리스트 만들기
even = [for i in mylist]
[STEP 2] for문 앞에 i 쓰기
even = [i for i in mylist]
(for i in mylist에서 반복문이 돌면서 i 값이 return 되고, 이 변수를 다시 even 리스트에 넣어주는 원리)
[STEP 3] 조건 필터 걸기
even = [i for i in mylist if i % 2 ==0]
[응용 STEP] even 리스트의 모든 값에 2씩 더해주기+
mylist = [1,2,3,4,5,6,7,8,9,10]
even = [i+2 for i in mylist]
even
#결과값 [3,4,5,6,7,8,9,10,11,12]
1부터 10까지의 수로 이루어져 있는 mylist에 mylist 안에 있는 모든 수에 2씩 더한 것을 even이라는 리스트에 넣겠다.
mylist안에 있는 값들을(i) 가져오고 그것들에 2씩 더해 even에 넣겠다
03 문자열 다루기
텍스트 분석을 할 때도, 엑셀 파일을 다룰 때도 문자열은 잘 다룰 줄 알아야 함
문자열을 자유자재로 다룰 수 있을 때 데이터 분석이 편해진다
1.1 len() 문자의 길이 알기
a = 'banana'
len(a)
#결과값 6
a = 'banana cake'
len(a)
#결과값 11
a = '한글'
len(a)
#결과값 2
공백도 하나의 문자로 인식한다
1.2 split() 문장 쪼개기
문장의 특정 규칙에 따라 쪼갤 때 사용함
split('어떤 기준으로 쪼갤지') 따옴표 사이에 기준을 넣어준다
ex) 고객 생년월일에서 생년만 자르기
#공백 기준으로 자르기
a = 'This is a pen'
a.split()
#결과값 ['This', 'is', 'a', 'pen']
#split()라고 치면 디폴트 값으로 공백기준 쪼개준다
# -(dash) 기준으로 자르기
a = 'This-is-a-pen'
a.split('-')
#결과값 ['This', 'is', 'a', 'pen']
#애초에 쪼개준 값을 다른 리스트에 넣어줘도 됨
aa = a.split('-')
aa
#결과값 ['This', 'is', 'a', 'pen']
1.3 upper(), lower() 대소문/소문자로 만들기
ex) 회원가입 시, 고객들이 적은 대소문자 섞인 ID를 모두 소문자로 바꿔주기
#대문자로 만들기
a = 'My name is Richy'
a.upper()
#결과값 MY NAME IS RICHY
#소문자로 만들기
a = 'My name is Richy'
a.lower()
#결과값 my name is richy
1.4 startswith/endswith ~로 시작하는, ~로 끝나는
특히 이름은 같고 확장자만 다른 파일 가져올 때 확장자 확인에 많이 쓰임
ex) jpg확장자로 끝나는 파일 확인할 때
a = '01-sample.png'
b = '02-sample.jpg'
c = '03-sample.pdf'
#~로 시작하는지, ~로 끝나는지 True/False 형태로 알 수 있다
a.startswith('01')
#결과값 True
a.endswith('.jpg')
False
#jpg로 끝나는 파일 가져오기
for file in mylist:
if file.endswith('jpg'):
print(file)
#결과값 02-sample.jpg
1.5 replace() 바꾸기
replace('바꿀 대상', '바꿔야 할 값')
ex) 파일 이름 중에 png 확장자를 jpg로 바꿔주고 싶을 때
a = '01-sample.png'
a.replace('.png', '.jpg')
#결과값 '01-sample.jpg'
#그러나 이렇게 해도 a를 다시 출력하면 .png로 다시 나옴
#replace()를 써도 a의 원래 값은 그대로 나옴
a
#결과값 '01-sample.png'
#따라서 새로운 변수에 담아준다
new_a = a.replace('.png', '.jpg')
new_a
#결과값 '01-sample.jpg'
1.6 strip() 앞뒤 공백 제거하기
a = ' 01-sample.png'
b = '01-sample.png'
a == b
#결과값 False
#컴퓨터는 공백도 count하기 때문에 a와 b를 다르다고 인식한다
a.strip()
#결과값 '01-sample.png'
a == b
#결과값 True
#a의 앞뒤 공백을 제거 후 b와 다시 비교하니 같다고 나옴
04 패키지와 import
모듈 : 함수들이 뭉쳐져 하나의 .py 파일 안에 이루어진 것(. py로 된 파일을 모듈이라 함)
패키지 : 여러 개의 모듈이 그룹화된 것, 모듈의 그룹 (=라이브러리)
ex) 내가 폴더를 하나 만들었고, 그 폴더 안에 비슷한 내용의 파일들을 모아둠 (마케팅, 인사, 재무 폴더 등...)
마케팅 기법 파일들이 모아진 폴더 하나 -> 폴더는 모듈
회사는 마케팅 파일, 인사 파일 등 모두 갖고 있음 -> 회사는 패키지
[형식] from 어딘가에서 import 어떤 패키지
왜 import를 하지?🧐
이미 다른 사람이 만들어 놓은 모듈을 쉽게 가져다가 쓰기 위해
import 하는 방법
ex) import pandas -> "pandas라는 모듈을 불러오겠다"
패키지 import 하는 방법
ex) from pandas import DataFrame -> "pandas라는 패키지로부터 DataFrame이라는 모듈을 불러오겠다."
pandas.DataFrame -> "pandas에 있는 DataFrame을 사용하겠다."
alias(별칭) 지어주기
패키지의 이름이 길기 때문에 보통 약어로 줄여 쓴다
이 같은 별칭은 global standard가 있고 코드를 다른 사람과 공유하는 경우가 많기 때문에 보편적인 별칭을 사용한다
ex) import pandas as pd
pandas를 pd라고 부를 것이다, 이를 불러와라
[자주 사용하는 패키지]
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
numpy : 과학 계산을 위한 패키지
pandas : 데이터 분석을 할 때 가장 많이 쓰이는 패키지
matplotlib : 시각화를 위한 패키지
seaborn : 시각화를 위한 패키지(matplotlib을 더 쉽게 사용할 수 있도록 도와줌)
'언어공부 > 파이썬' 카테고리의 다른 글
#2. Google Colab을 이용한 파이썬 독학(주석, 비교연산자, 조건문, 논리연산자, 함수) (0) | 2020.10.10 |
---|---|
#1. Google Colab을 이용한 파이썬 독학 시작! (데이터타입) (0) | 2020.09.22 |