파이썬을 활용한 금융 분석 Ch 9. Input Output Operation
1. 기본 파이썬 입출력
1-1. pickle 패키지를 통한 입출력
1-2. CSV 파일로의 입출력
1-3. SQLite3 DB로의 입출력
1-4. numpy 패키지에서의 입출력
2. pandas 패키지를 사용한 입출력
2-1. 포맷에 따른 pandas 입출력 함수
3. PyTables를 사용한 입출력
3-1. HDF5 데이터 모델
2. 목차
Python의 객체를 파일 레벨(다른 소프트웨어와의 연결 없이)로 읽고 쓰는 방법에 대해 정리
Github Repository에 (https://github.com/yhilpisch/py4fi2nd) 책 내용과 관련된 코드는 잘
정리되어 있어, 교재에서 언급되지 않는 내용들 위주로 정리
1. 기본 파이썬 입출력
2. pandas 패키지를 사용한 입출력
3. PyTables를 사용한 입출력
5. 1-1. pickle 패키지를 통한 입출력
• pickle 패키지는 Python 인스턴스를 직렬화(Serialize), 역직렬화(Deserialize)하여 파일로 출
력하고 로드하도록 지원
• pickle 파일 하나에 여러 객체를 출력할 수 있음
• (추가) dill 패키지: pickle 패키지의 기능에 추가적인 기능을 제공하는 패키지
• 인터프리터 상태도 같이 저장하여, 클래스 정의도 같이 파일로 저장할 수 있음
6.
7.
8.
9.
10.
11.
12.
13. 1-2. CSV 파일로의 입출력
• 텍스트 파일에 대한 CSV 형식 입출력
• csv 패키지를 통한 입출력
• (추가) 문자열 포맷팅 방법
• % 연산자
• str.format 함수
• f-string
14.
15.
16.
17.
18.
19. 1-3. SQLite3 DB로의 입출력
• SQLite3 DB 처리를 위한 패키지 sqlite3 기본 사용법
• (추가) 데이터베이스 연결 패키지에 따른 Parameterized Statement 작성 방법 확인
20.
21.
22.
23.
24.
25.
26.
27. 1-4. numpy 패키지에서의 입출력
• numpy.dtype을 사용하여, numpy.ndarray에서 다양한 데이터 타입 다루기
• 좋은 것 같긴 한데, 다양한 데이터 타입을 편하게 다루기엔 pandas가 훨씬 강력
• numpy 패키지에서 제공하는 저장, 로드 기능
• 파일 입출력 속도가 앞선 방법들에 비해 훨씬 빠름
31. 2. pandas 패키지를 통한 입출력
1. 포맷에 따른 pandas의 입출력 함수
2. (생략) SQLite3 DB와 연결
3. (생략) CSV 파일과 연결
4. (생략) 엑셀 파일과 연결
생략된 내용은 Gitlab Repository (https://github.com/yhilpisch/py4fi2nd) 참조
32. 2-1. 포맷에 따른 pandas의 입출력 함수
포맷 입력 출력 설명
CSV read_csv to_csv 텍스트 파일
XLS/XLSX read_excel to_excel 스프레드시트
HDF read_hdf to_hdf HDF 데이터베이스
SQL read_sql to_sql SQL 테이블
JSON read_json to_json JSON
MSGPACK read_msgpack to_msgpack msgpack 바이너리 포맷
HTML read_html to_html HTML 코드
GBQ read_gbq to_gbq 구글 빅쿼리 포맷
Any read_clipboard to_clipboard 클립보드
Any read_pickle to_pickle (구조화된) 파이썬 객체
34. 3. PyTables를 사용한 입출력
PyTables는 HDF5 파일 형식의 데이터베이스 파일을 제어할 수 있도록 해주는 파이썬 패키지이다.
1. HDF5 데이터 모델
2. (생략) PyTables를 사용한 HDF5 데이터 모델 사용
생략된 내용은 Gitlab Repository (https://github.com/yhilpisch/py4fi2nd) 참조
35. 3-1. HDF5 데이터 모델
• HDF5(=Hierarchical Data Format version 5)는
고속 데이터 처리를 위한 데이터 모델, 파일 포맷
• HDF5 데이터 모델의 구성 요소
• 주요 객체: Group, dataset
• 주요 객체를 지원하는 요소: Datatype, dataspace, property, attribute
36. 3-1. HDF5 데이터 모델: Group, Dataset
• Group은 계층 구조를 가질 수 있음 (디렉토리와 비슷함)
• HDF5 파일에는 항상 최상위 Group이 존재
• Dataset은 Group의 하위에 속할 수 있음
• Dataset은 Metadata와 Data로 구성됨
디렉토리 형태로
표시된 개체가 Group,
기타 다른 노드들은 Dataset
Dataset은 Metadata와 Data로 구성되고,
Metadata 내부에 Dataspace, datatype,
attribute, property가 존재
https://portal.hdfgroup.org/display/HDF5/Introduction+to+HDF5
37. 3-1. HDF5 데이터 모델:
Datatype, Dataspace, Property, Attribute
• Dataset의 Metadata 안에서 부가적인 정보를 표현하는
객체로 Datatype, dataspace, property, attribute가 있
음
• Datatype은 Data의 개별 Element의 형식을 저장
• 미리 정의된 Pre-defined datatype과 이를 조합하여
만들 수 있는 Derived datatype(=Compound
datatype)이 있음
• Dataspace는 Data의 차원과 각 차원 별 크기를 저장
• Property는 저장 구조를 지정
• Attribute는 Name과 Value로 구성되며, Dataset에 간단한
부가 정보를 저장
https://portal.hdfgroup.org/display/HDF5/Introduction+to+HDF5