Module
→ 여러 변수, 함수, 클래스(다수의 변수 + 함수)를 저장해둔 파이썬 소스코드 파일
class vs module ⇒ 효율성 vs 재사용성
- 모듈이 없다면?
→ 이전에 사용했던 class에 추가로 when_rest() 함수를 사용하려는 경우
▶️ 이전에 사용했던 class를 복사 & 붙여넣기 후 함수를 추가해야 되는 불편함이 생김
모듈 생성 후 사용하는 방법
▶️ jupyter notebook을 실행해 New → Text File 생성
▶️ untitled.txt로 저장되어 있는 이름을 mymodule.py로 바꾼후 저장
▶️ mymodule.py 텍스트 파일에 이전에 사용했던 class 파일을 복사 후 붙여넣기 함
→ class명은 편의상 MyClient로 변경함
▶️ 파이썬 이름을 입력 후 import 해서 사용할 수 있음
→ 실행시키고 있는 jupyter notebook과 파이썬 파일이 같은 폴더 내에 존재해야 함
▶️ 다른 class를 가져올 때 더이상 따로 jupyter notebook을 실행시킬 필요가 없어짐
Random Module
▶️ 랜덤 모듈을 생성함
▶️ 0부터 1사이의 랜덤 실수를 리턴함
크롤링 예시
https://news.mt.co.kr/mtview.php?no=2021070517302023951
▶️ 크롤링 할 때 똑같은 시간으로 계속 같은 버튼을 누르면 서버쪽에서 bot이라고 판단하고 막는 경우가 발생할 수 있음
▶️ random.uniform(값1, 값2) 함수를 통해 값1과 값2 숫자 사이의 랜덤 정수를 리턴하면 bot이라고 판단하지 않도록 만들 수 있음
▶️ random.randint(값1, 값2) 함수는 두 숫자 사이의 랜덤 정수를 리턴함
▶️ dir(random)을 출력함으로써 제공하는 함수를 확인할 수 있음
★ 대부분 __ 붙어있는 건 인자값이 필요 없는 함수이고 __ 없는 것은 인자값이 필요한 함수임 ★
▶️ random.__file__ : 설치 경로를 확인하는 방법
모듈의 경로 순서
컴퓨터가 모듈이 어디에 있는지 하나하나 찾아서 읽는다
- 현재 작업 디렉토리(current working directory)에서 탐색
- 환경 변수(PATH) echo %PATH%에서 탐색
- 현재 실행하는 환경에 따라 모듈이 설치된 경로를 탐색
▶️ 환경 변수(PATH) echo %PATH%를 통해 실행파일들이 경로를 하나씩 거쳐가면서 열림
▶️ echo → 글자 출력 명령
▶️ 터미널에서 사용하는걸 jupyter에서 사용하고 싶을 때 ! 사용
▶️ ;을 기준으로 나눠 사용자가 보기 편하게 출력할 수 있음
cmd 창에서 python이라고 실행하면 위의 경로를 하나하나씩 찾아가면서 python을 실행시킴
▶️ 현재 실행하는 환경에 따라 모듈이 설치된 경로를 탐색함
모듈 불러오기
- 모듈 통으로 불러오기
import 모듈명 사용 : 모듈명, 함수명
- 모듈의 사용할 함수만 불러오기
from 모듈명 import 함수명, 함수명 사용: 함수명
▶️ 예시 확인을 위해 mymodule2 파이썬 파일을 생성해 사용할 메서드만 불러와서 사용하는 모습
- 모듈 별명으로 불러오기
import 모듈명 as 별명, from 모듈명 import 함수명 as 별명 사용: 별명
Package
- 날짜형 데이터 다루기
→ datetime 패키지
▶️ from 모듈명 import 함수명을 통해 datetime을 생성함
▶️ 2017부터 순서대로 년, 월, 일, 시, 분, 초를 나타냄
▶️ datetime을 변수 dt에 저장함
▶️ 년, 월, 일, 시, 분, 초를 각각 year, minute 등으로 지정하지 않아도 출력 가능
→ 이미 모듈에 저장되어 있음
▶️ 오늘 일자도 마찬가지로 datetime 모듈에 today가 저장되어 있어서 바로 출력 가능함
▶️ datetime 함수를 문자열 형태로 전환함
▶️ replace 함수를 통해 일정 부분만 값을 바꿀 수 있음
- 객체의 차, delta
▶️ timedelta 객에체서는 day가 아닌 days를 사용함
▶️ datetime.datetime 객체에서는 .day를 썼음
▶️ delta는 기간의 차이를 뜻하기 때문에 기본적으로 여러 일자가 나온다고 생각하면 days가 조금 더 올바른표현임을 알 수 있음
Q.
2019년 1월 6일부터 정리하던 노트를 보며 복습하려고 한다. 복습하고자 하는 일자는 최초 작성일부터 현재까지의 랜덤 일자로 정해진다. 다음과 같이 출력하라
ex. 오늘 복습해야 하는 노트의 일자는 2019-10-20입니다.
▶️ 잘 실행되는지 확인하기 위해 파이썬 파일을 만들고 cmd를 통해 확인
▶️ 실행시킬 때마다 랜덤으로 날짜가 정해짐
Pandas(판다스)
→ 데이터 분석에서 가장 많이 쓰이는 package임
▶️ 시계열 데이터(Series)와 데이터프레임(DataFrame)을 제공함
Series
→ 판다스에서는 Series에 index가 있음
시리즈 = 인덱스(index) + 값(value)
▶️ Series에서는 index가 dictionary에서의 key값과 비슷한 역할을 함
▶️ pd.Series 값을 population이라는 변수에 저장함
▶️ 변수.index를 통해 index 값만 따로 출력 가능
▶️ 변수.values를 통해 values 값만 따로 출력 가능
▶️ 수학적 연산도 가능함
▶️ index를 따로 지정하지 않고도 pd.Series를 출력할 수 있음
→ range 활용
▶️ 10부터 13까지의 value값을 가진 Series를 출력함
▶️ 1, 2, 3의 value값을 가진 Series를 출력함
'Data Analysis' 카테고리의 다른 글
[ Python ] 데이터 (0) | 2021.09.02 |
---|---|
[ Python ] 인덱싱 (0) | 2021.09.02 |
[ Python ] 클래스 (0) | 2021.09.02 |
유튜브 댓글 크롤링 프로그램 (3) | 2021.09.02 |
코인 투자 프로그램 (2) | 2021.08.31 |