SlideShare a Scribd company logo
1 of 37
Download to read offline
9. Input/Output
Operations
H.o.A.I. 이찬희
Python for Finance
목차
Python의 객체를 파일 레벨(다른 소프트웨어와의 연결 없이)로 읽고 쓰는 방법에 대해 정리
Github Repository에 (https://github.com/yhilpisch/py4fi2nd) 책 내용과 관련된 코드는 잘
정리되어 있어, 교재에서 언급되지 않는 내용들 위주로 정리
1. 기본 파이썬 입출력
2. pandas 패키지를 사용한 입출력
3. PyTables를 사용한 입출력
1. 기본 파이썬 입출력
1. 기본 파이썬 입출력
1. pickle 패키지를 통한 입출력
2. CSV 파일로의 입출력
3. SQLite3 DB로의 입출력
4. numpy 패키지에서의 입출력
1-1. pickle 패키지를 통한 입출력
• pickle 패키지는 Python 인스턴스를 직렬화(Serialize), 역직렬화(Deserialize)하여 파일로 출
력하고 로드하도록 지원
• pickle 파일 하나에 여러 객체를 출력할 수 있음
• (추가) dill 패키지: pickle 패키지의 기능에 추가적인 기능을 제공하는 패키지
• 인터프리터 상태도 같이 저장하여, 클래스 정의도 같이 파일로 저장할 수 있음
1-2. CSV 파일로의 입출력
• 텍스트 파일에 대한 CSV 형식 입출력
• csv 패키지를 통한 입출력
• (추가) 문자열 포맷팅 방법
• % 연산자
• str.format 함수
• f-string
1-3. SQLite3 DB로의 입출력
• SQLite3 DB 처리를 위한 패키지 sqlite3 기본 사용법
• (추가) 데이터베이스 연결 패키지에 따른 Parameterized Statement 작성 방법 확인
1-4. numpy 패키지에서의 입출력
• numpy.dtype을 사용하여, numpy.ndarray에서 다양한 데이터 타입 다루기
• 좋은 것 같긴 한데, 다양한 데이터 타입을 편하게 다루기엔 pandas가 훨씬 강력
• numpy 패키지에서 제공하는 저장, 로드 기능
• 파일 입출력 속도가 앞선 방법들에 비해 훨씬 빠름
2. pandas 패키지를 통한 입출력
2. pandas 패키지를 통한 입출력
1. 포맷에 따른 pandas의 입출력 함수
2. (생략) SQLite3 DB와 연결
3. (생략) CSV 파일과 연결
4. (생략) 엑셀 파일과 연결
생략된 내용은 Gitlab Repository (https://github.com/yhilpisch/py4fi2nd) 참조
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 (구조화된) 파이썬 객체
3. PyTables를 사용한 입출력
3. PyTables를 사용한 입출력
PyTables는 HDF5 파일 형식의 데이터베이스 파일을 제어할 수 있도록 해주는 파이썬 패키지이다.
1. HDF5 데이터 모델
2. (생략) PyTables를 사용한 HDF5 데이터 모델 사용
생략된 내용은 Gitlab Repository (https://github.com/yhilpisch/py4fi2nd) 참조
3-1. HDF5 데이터 모델
• HDF5(=Hierarchical Data Format version 5)는
고속 데이터 처리를 위한 데이터 모델, 파일 포맷
• HDF5 데이터 모델의 구성 요소
• 주요 객체: Group, dataset
• 주요 객체를 지원하는 요소: Datatype, dataspace, property, attribute
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
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

More Related Content

Similar to 파이썬을 활용한 금융 분석 Ch 9. Input Output Operation

Python packaging
Python packagingPython packaging
Python packagingJi Hun Kim
 
200718 덕성여대 생물정보학 강의 :: 생물정보학 파이썬
200718 덕성여대 생물정보학 강의 :: 생물정보학 파이썬200718 덕성여대 생물정보학 강의 :: 생물정보학 파이썬
200718 덕성여대 생물정보학 강의 :: 생물정보학 파이썬Joohyun Han
 
18 2 파이썬표준라이브러리
18 2 파이썬표준라이브러리18 2 파이썬표준라이브러리
18 2 파이썬표준라이브러리Changwon National University
 
제로부터시작하는 Git 두번째 이야기
제로부터시작하는 Git 두번째 이야기제로부터시작하는 Git 두번째 이야기
제로부터시작하는 Git 두번째 이야기Mario Cho
 
PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보
PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보
PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보Young Hoo Kim
 
Git 입문자를 위한 가이드
Git 입문자를 위한 가이드Git 입문자를 위한 가이드
Git 입문자를 위한 가이드chandler0201
 
Python Packaging & Debian Packaging
Python Packaging & Debian PackagingPython Packaging & Debian Packaging
Python Packaging & Debian Packaging경섭 심
 
맨땅에서 AI학습플랫폼을 만들기까지
맨땅에서 AI학습플랫폼을 만들기까지맨땅에서 AI학습플랫폼을 만들기까지
맨땅에서 AI학습플랫폼을 만들기까지Sunwoo Park
 
Python 생태계의 이해
Python 생태계의 이해Python 생태계의 이해
Python 생태계의 이해용 최
 
Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)정명훈 Jerry Jeong
 
파이콘 2017 그만퇴근합시다_이지호
파이콘 2017 그만퇴근합시다_이지호파이콘 2017 그만퇴근합시다_이지호
파이콘 2017 그만퇴근합시다_이지호Jiho Lee
 
[17.02.09] Github introduction (Korean Version)
[17.02.09] Github introduction (Korean Version)[17.02.09] Github introduction (Korean Version)
[17.02.09] Github introduction (Korean Version)Ildoo Kim
 
Debian packaging - basic process
Debian packaging - basic processDebian packaging - basic process
Debian packaging - basic process경섭 심
 
[2021 오픈소스 컨트리뷰션 아카데미] #9 리브레오피스(LibreOffice) 컨트리뷰션 정리
[2021 오픈소스 컨트리뷰션 아카데미] #9 리브레오피스(LibreOffice) 컨트리뷰션 정리[2021 오픈소스 컨트리뷰션 아카데미] #9 리브레오피스(LibreOffice) 컨트리뷰션 정리
[2021 오픈소스 컨트리뷰션 아카데미] #9 리브레오피스(LibreOffice) 컨트리뷰션 정리DaeHyun Sung
 
Hoodpub 기술 발표
Hoodpub 기술 발표Hoodpub 기술 발표
Hoodpub 기술 발표Hyun-min Choi
 
Ubuntu에서 Flask개발 맛보기 - 1
Ubuntu에서  Flask개발 맛보기 - 1Ubuntu에서  Flask개발 맛보기 - 1
Ubuntu에서 Flask개발 맛보기 - 1Booseol Shin
 
chatbot-seminar-1806
chatbot-seminar-1806chatbot-seminar-1806
chatbot-seminar-1806juneyoungdev
 

Similar to 파이썬을 활용한 금융 분석 Ch 9. Input Output Operation (20)

JetsonTX2 Python
 JetsonTX2 Python  JetsonTX2 Python
JetsonTX2 Python
 
Python packaging
Python packagingPython packaging
Python packaging
 
200718 덕성여대 생물정보학 강의 :: 생물정보학 파이썬
200718 덕성여대 생물정보학 강의 :: 생물정보학 파이썬200718 덕성여대 생물정보학 강의 :: 생물정보학 파이썬
200718 덕성여대 생물정보학 강의 :: 생물정보학 파이썬
 
18 2 파이썬표준라이브러리
18 2 파이썬표준라이브러리18 2 파이썬표준라이브러리
18 2 파이썬표준라이브러리
 
Git
Git Git
Git
 
제로부터시작하는 Git 두번째 이야기
제로부터시작하는 Git 두번째 이야기제로부터시작하는 Git 두번째 이야기
제로부터시작하는 Git 두번째 이야기
 
PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보
PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보
PyCon 12월 세미나 - 실전 파이썬 프로그래밍 책 홍보
 
Git 입문자를 위한 가이드
Git 입문자를 위한 가이드Git 입문자를 위한 가이드
Git 입문자를 위한 가이드
 
Python Packaging & Debian Packaging
Python Packaging & Debian PackagingPython Packaging & Debian Packaging
Python Packaging & Debian Packaging
 
맨땅에서 AI학습플랫폼을 만들기까지
맨땅에서 AI학습플랫폼을 만들기까지맨땅에서 AI학습플랫폼을 만들기까지
맨땅에서 AI학습플랫폼을 만들기까지
 
Python 생태계의 이해
Python 생태계의 이해Python 생태계의 이해
Python 생태계의 이해
 
Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)
 
파이콘 2017 그만퇴근합시다_이지호
파이콘 2017 그만퇴근합시다_이지호파이콘 2017 그만퇴근합시다_이지호
파이콘 2017 그만퇴근합시다_이지호
 
[17.02.09] Github introduction (Korean Version)
[17.02.09] Github introduction (Korean Version)[17.02.09] Github introduction (Korean Version)
[17.02.09] Github introduction (Korean Version)
 
Debian packaging - basic process
Debian packaging - basic processDebian packaging - basic process
Debian packaging - basic process
 
[2021 오픈소스 컨트리뷰션 아카데미] #9 리브레오피스(LibreOffice) 컨트리뷰션 정리
[2021 오픈소스 컨트리뷰션 아카데미] #9 리브레오피스(LibreOffice) 컨트리뷰션 정리[2021 오픈소스 컨트리뷰션 아카데미] #9 리브레오피스(LibreOffice) 컨트리뷰션 정리
[2021 오픈소스 컨트리뷰션 아카데미] #9 리브레오피스(LibreOffice) 컨트리뷰션 정리
 
11. git basic
11. git basic11. git basic
11. git basic
 
Hoodpub 기술 발표
Hoodpub 기술 발표Hoodpub 기술 발표
Hoodpub 기술 발표
 
Ubuntu에서 Flask개발 맛보기 - 1
Ubuntu에서  Flask개발 맛보기 - 1Ubuntu에서  Flask개발 맛보기 - 1
Ubuntu에서 Flask개발 맛보기 - 1
 
chatbot-seminar-1806
chatbot-seminar-1806chatbot-seminar-1806
chatbot-seminar-1806
 

More from 찬희 이

Context2Vec 기반 단어 의미 중의성 해소, Word Sense Disambiguation
Context2Vec 기반 단어 의미 중의성 해소, Word Sense DisambiguationContext2Vec 기반 단어 의미 중의성 해소, Word Sense Disambiguation
Context2Vec 기반 단어 의미 중의성 해소, Word Sense Disambiguation찬희 이
 
의존 구조 분석기, Dependency parser
의존 구조 분석기, Dependency parser의존 구조 분석기, Dependency parser
의존 구조 분석기, Dependency parser찬희 이
 
mecab-ko-dic 사용자 사전
mecab-ko-dic 사용자 사전mecab-ko-dic 사용자 사전
mecab-ko-dic 사용자 사전찬희 이
 
Word2Vec 개요 및 활용
Word2Vec 개요 및 활용Word2Vec 개요 및 활용
Word2Vec 개요 및 활용찬희 이
 
PySpark 배우기 Ch 06. ML 패키지 소개하기
PySpark 배우기 Ch 06. ML 패키지 소개하기PySpark 배우기 Ch 06. ML 패키지 소개하기
PySpark 배우기 Ch 06. ML 패키지 소개하기찬희 이
 
파이썬을 활용한 금융 분석 Ch 14. The FXCM Trading Platform
파이썬을 활용한 금융 분석 Ch 14. The FXCM Trading Platform파이썬을 활용한 금융 분석 Ch 14. The FXCM Trading Platform
파이썬을 활용한 금융 분석 Ch 14. The FXCM Trading Platform찬희 이
 
은닉 마르코프 모델, Hidden Markov Model(HMM)
은닉 마르코프 모델, Hidden Markov Model(HMM)은닉 마르코프 모델, Hidden Markov Model(HMM)
은닉 마르코프 모델, Hidden Markov Model(HMM)찬희 이
 
단어 의미 중의성 해소, Word Sense Disambiguation(WSD)
단어 의미 중의성 해소, Word Sense Disambiguation(WSD)단어 의미 중의성 해소, Word Sense Disambiguation(WSD)
단어 의미 중의성 해소, Word Sense Disambiguation(WSD)찬희 이
 
Dependency Parser, 의존 구조 분석기
Dependency Parser, 의존 구조 분석기Dependency Parser, 의존 구조 분석기
Dependency Parser, 의존 구조 분석기찬희 이
 
Phrase Tagger, 구문 태거
Phrase Tagger, 구문 태거Phrase Tagger, 구문 태거
Phrase Tagger, 구문 태거찬희 이
 
프로젝트용 PC 환경구성 이찬희
프로젝트용 PC 환경구성   이찬희프로젝트용 PC 환경구성   이찬희
프로젝트용 PC 환경구성 이찬희찬희 이
 

More from 찬희 이 (11)

Context2Vec 기반 단어 의미 중의성 해소, Word Sense Disambiguation
Context2Vec 기반 단어 의미 중의성 해소, Word Sense DisambiguationContext2Vec 기반 단어 의미 중의성 해소, Word Sense Disambiguation
Context2Vec 기반 단어 의미 중의성 해소, Word Sense Disambiguation
 
의존 구조 분석기, Dependency parser
의존 구조 분석기, Dependency parser의존 구조 분석기, Dependency parser
의존 구조 분석기, Dependency parser
 
mecab-ko-dic 사용자 사전
mecab-ko-dic 사용자 사전mecab-ko-dic 사용자 사전
mecab-ko-dic 사용자 사전
 
Word2Vec 개요 및 활용
Word2Vec 개요 및 활용Word2Vec 개요 및 활용
Word2Vec 개요 및 활용
 
PySpark 배우기 Ch 06. ML 패키지 소개하기
PySpark 배우기 Ch 06. ML 패키지 소개하기PySpark 배우기 Ch 06. ML 패키지 소개하기
PySpark 배우기 Ch 06. ML 패키지 소개하기
 
파이썬을 활용한 금융 분석 Ch 14. The FXCM Trading Platform
파이썬을 활용한 금융 분석 Ch 14. The FXCM Trading Platform파이썬을 활용한 금융 분석 Ch 14. The FXCM Trading Platform
파이썬을 활용한 금융 분석 Ch 14. The FXCM Trading Platform
 
은닉 마르코프 모델, Hidden Markov Model(HMM)
은닉 마르코프 모델, Hidden Markov Model(HMM)은닉 마르코프 모델, Hidden Markov Model(HMM)
은닉 마르코프 모델, Hidden Markov Model(HMM)
 
단어 의미 중의성 해소, Word Sense Disambiguation(WSD)
단어 의미 중의성 해소, Word Sense Disambiguation(WSD)단어 의미 중의성 해소, Word Sense Disambiguation(WSD)
단어 의미 중의성 해소, Word Sense Disambiguation(WSD)
 
Dependency Parser, 의존 구조 분석기
Dependency Parser, 의존 구조 분석기Dependency Parser, 의존 구조 분석기
Dependency Parser, 의존 구조 분석기
 
Phrase Tagger, 구문 태거
Phrase Tagger, 구문 태거Phrase Tagger, 구문 태거
Phrase Tagger, 구문 태거
 
프로젝트용 PC 환경구성 이찬희
프로젝트용 PC 환경구성   이찬희프로젝트용 PC 환경구성   이찬희
프로젝트용 PC 환경구성 이찬희
 

파이썬을 활용한 금융 분석 Ch 9. Input Output Operation

  • 2. 목차 Python의 객체를 파일 레벨(다른 소프트웨어와의 연결 없이)로 읽고 쓰는 방법에 대해 정리 Github Repository에 (https://github.com/yhilpisch/py4fi2nd) 책 내용과 관련된 코드는 잘 정리되어 있어, 교재에서 언급되지 않는 내용들 위주로 정리 1. 기본 파이썬 입출력 2. pandas 패키지를 사용한 입출력 3. PyTables를 사용한 입출력
  • 4. 1. 기본 파이썬 입출력 1. pickle 패키지를 통한 입출력 2. CSV 파일로의 입출력 3. SQLite3 DB로의 입출력 4. numpy 패키지에서의 입출력
  • 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 패키지에서 제공하는 저장, 로드 기능 • 파일 입출력 속도가 앞선 방법들에 비해 훨씬 빠름
  • 28.
  • 29.
  • 30. 2. pandas 패키지를 통한 입출력
  • 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