Data Analysis

[ Python ] 모듈

곽수진 2021. 9. 2. 19:16
반응형

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