모듈(Module): 각각의 소스 파일
이미 만들어져 있고 안정성이 검증된 함수들을 성격에 맞게 하나의 파일로 묶어 놓은 것
import 모듈명 # 모듈 전체를 임포트
모듈명.함수명() # 모듈의 함수 사용
import 모듈명 as 별칭 # 모듈을 별칭으로 임포트
별칭.함수명() # 별칭으로 함수 사용
외부의 모듈에 있는 함수를 사용하려면 이 모듈을 먼저 우리 코드로 가져와서 자유롭게 사용할 수 있도록 해야 하는데, 이런 일을 파이썬에서는 모듈을 import 한다라고 함
외부의 모듈을 호출하는 코드
import pandas as pd # 판다스라는 모듈을 임포트해서 우리 코드에서 자유롭게 쓰겠다.
emp = pd.read_csv("c:\\data\\emp.csv")
emp
import pandas as pd # 판다스라는 모듈을 임포트해서 우리 코드에서 자유롭게 쓰겠다.
emp = pd.read_csv("c:\\data\\emp.csv")
emp.loc[emp.sal >= 3000, :] # emp.loc[검색조건, 컬럼]
import pandas as pd # 판다스라는 모듈을 임포트해서 우리 코드에서 자유롭게 쓰겠다.
emp = pd.read_csv("c:\\data\\emp.csv")
emp.loc[emp.sal >= 3000, ['ename', 'sal']] # emp.loc[검색조건, 컬럼]
import pandas as pd
emp = pd.read_csv("c:\\data\\emp.csv")
emp.loc[emp.job == 'SALESMAN', ['ename', 'sal', 'job']]
sqrt(): 루트import math
result = math.sqrt(16) # 4.0
print(result)
import pandas as pd
import numpy as np
df = pd.DataFrame({'A': [1, 2, 3]})
arr = np.array([1, 2, 3])
from math import sqrt, pi
result = sqrt(16) # math.sqrt(16)이 아닌 sqrt(16)으로 사용 가능
print(pi) # math.pi가 아닌 pi로 사용 가능
# 3.141592653589793
from math import *
result = sqrt(16) # 모든 함수를 직접 사용 가능
print(pi)
⚠️ 주의: from module import *는 네임스페이스 충돌을 일으킬 수 있어 권장 X
우리가 직접 모듈을 만들고 싶다면 함수들을 별도의 .py 파일로 저장하면 됨
다음 3개의 함수를 포함한 모듈을 만들어보는 예제
def add_number(n1, n2):
"""두 수를 더하는 함수"""
result = n1 + n2
return result
def minus_number(n1, n2):
"""두 수를 빼는 함수"""
result = n1 - n2
return result
def gob_number(n1, n2):
"""두 수를 곱하는 함수"""
result = n1 * n2
return result
import os
print(os.getcwd()) # 현재 작업 디렉토리 확인
# 또는 주피터 노트북에서
!pwd # 리눅스/맥
!cd # 윈도우
yu_auto.py 파일을 생성한 후, 다음과 같이 사용가능
import yu_auto
yu_auto.add_number(2,3) #5
yu_auto.minus_number(4,2) #2
yu_auto.gob_number(2,4) #8
import yu_auto as calc
calc.add_number(2,3)
from yu_auto import add_number, minus_number
add_number(4,5) #9
파이썬은 다음 순서로 모듈을 찾음
import sys
for path in sys.path:
print(path)
import sys
sys.path.append('/path/to/your/module') # 새로운 경로 추가
import your_module # 이제 해당 경로의 모듈을 임포트 가능
import sys
sys.path.append('c:;\\users\\itwill') # 새로운 경로 추가
import yu_auto # 이제 해당 경로의 모듈을 임포트 가능
import pandas as pd # 데이터 분석
import numpy as np # 수치 계산
import matplotlib.pyplot as plt # 시각화
import seaborn as sns # 고급 시각화
import requests # HTTP 요청
import flask # 웹 프레임워크
import json # JSON 처리
import os # 운영체제 인터페이스
import sys # 시스템 관련 기능
import datetime # 날짜/시간 처리
import random # 난수 생성
import csv # CSV 파일 처리
import openpyxl # 엑셀 파일 처리
import sqlite3 # SQLite 데이터베이스
.py 파일에 작성import 문으로 사용if __name__ == "__main__": 블록 활용