CSV에서 데이터 읽기, 검사, 정리

Python으로 금융 데이터 가져오기와 관리

Stefan Jansen

Instructor

데이터 가져오기 및 정리

  • pd.DataFrame()이 CSV 원본 파일과 동일한지 확인
  • 주식 거래소 상장 파일: amex-listings.csv

AmEx 데이터

Python으로 금융 데이터 가져오기와 관리

pandas의 데이터 저장 방식

  • 각 열은 고유한 데이터 형식(dtype)을 가짐
  • dtype는 계산과 시각화에 영향
pandas dtype 열 특성
object 텍스트 또는 텍스트/숫자 혼합
int64 숫자: 정수 - 64비트 ($\le 2^{64}$)
float64 숫자: 소수, 또는 결측값이 있는 정수
datetime64 날짜/시간 정보
Python으로 금융 데이터 가져오기와 관리

가져오기 및 검사

import pandas as pd

amex = pd.read_csv('amex-listings.csv')
amex.info() # 테이블 구조와 데이터 타입 확인
RangeIndex: 360 entries, 0 to 359
Data columns (total 8 columns):
 #   Column                 Non-Null Count  Dtype  
 --  ------                 --------------  -----  
 0   Stock Symbol           360 non-null    object 
 1   Company Name           360 non-null    object 
 2   Last Sale              346 non-null    float64
 3   Market Capitalization  360 non-null    float64
 4   IPO Year               105 non-null    float64
 5   Sector                 238 non-null    object 
 6   Industry               238 non-null    object 
 7   Last Update            360 non-null    object 
dtypes: float64(3), object(5)
Python으로 금융 데이터 가져오기와 관리

결측값 처리

# 'n/a'를 np.nan으로 대체
amex = pd.read_csv('amex-listings.csv', na_values='n/a')

amex.info()
RangeIndex: 360 entries, 0 to 359
Data columns (total 8 columns):
 #   Column                 Non-Null Count  Dtype  
 --  ------                 --------------  -----  
 0   Stock Symbol           360 non-null    object 
 1   Company Name           360 non-null    object 
 2   Last Sale              346 non-null    float64
 3   Market Capitalization  360 non-null    float64
 4   IPO Year               105 non-null    float64
 5   Sector                 238 non-null    object 
 6   Industry               238 non-null    object 
 7   Last Update            360 non-null    object 
dtypes: float64(3), object(5)
Python으로 금융 데이터 가져오기와 관리

날짜 올바르게 파싱하기

amex = pd.read_csv('amex-listings.csv',
                   na_values='n/a',
                   parse_dates=['Last Update'])

amex.info()
RangeIndex: 360 entries, 0 to 359
Data columns (total 8 columns):
 #   Column                 Non-Null Count  Dtype         
 --  ------                 --------------  -----  
 0   Stock Symbol           360 non-null    object        
 1   Company Name           360 non-null    object        
 2   Last Sale              346 non-null    float64       
 3   Market Capitalization  360 non-null    float64       
 4   IPO Year               105 non-null    float64       
 5   Sector                 238 non-null    object        
 6   Industry               238 non-null    object        
 7   Last Update            360 non-null    datetime64[ns]
dtypes: datetime64[ns](1), float64(3), object(4)
Python으로 금융 데이터 가져오기와 관리

결과 미리보기

amex.head(2) # 처음 n개 행 표시(기본값: 5)
  Stock Symbol   Company Name  
0         XXII   22nd Century Group, Inc   
1          FAX   Aberdeen Asia-Pacific Income Fund Inc   

   Last Sale  Market Capitalization  IPO Year  
0     1.3300           1.206285e+08       NaN  
1     5.0000           1.266333e+09    1986.0  

   Sector        Industry              Last Update  
0  Non-Durables  Farming/Seeds/Milling  2017-04-26  
1  NaN           NaN                    2017-04-25
Python으로 금융 데이터 가져오기와 관리

연습해 봅시다!

Python으로 금융 데이터 가져오기와 관리

Preparing Video For Download...