본문 바로가기

😀 기초/판다스(Pandas)

4.2 데이터 입출력

4.2 데이터 입출력

 

1. 데이터 입출력

- Pandas는 데이터 파일을 읽어 데이터프레임을 만들 수 있다.
- 다음처럼 여러가지 포맷을 지원함.
- CSV
- Excel
- HTML
- JSON
- HDF5
- SAS
- STATA
- SQL

- 여기서 가장 단순하지만 널리 사용되는 CSV(Comman Separated Value) 포맷 입출력에 대해 알아보자
- CSV 파일 포맷은 데이터 값이 쉼표(commna)로 구분되는 텍스트 파일

 

2. #### %%writefile 명령
- 샘플 데이터로 사용할 CSV 파일은 %%writefile 매직(magic)명령으로 만들어보자.
- 이 명령은 셀에 서술한 내용대로 텍스트 파일을 만드는 명령이다.

 

3. #### CSV 파일 입력
- CSV 파일로부터 데이터를 읽어 데이터프레임을 만들 때는
- pandas.read_csv 함수를 사용한다.
- 함수의 입력값으로 파일 이름을 넣는다.

- 위에서 읽은 데이터에는 열 인덱스는 있지만
- 행 정보가 없으므로 0부터 시작한느 정수 인덱스가 자동으로 추가된다.

- 만약 데이터 파일에 열 인덱스 정보가 없는 경우에는
- read_csv 명령의 names 인수로 설정할 수 있다.

 

- 확장자가 csv가 아닌 파일 즉, 데이터를 구분하는 구분자(separator)가 쉼표가 아니면
-  sep 인수를 써서 구분자를 사용자가 지정해준다.
- 만약 길이가 정해지지 않은 공백이 구분자인 경우에는
- \s+ 정규식(regular expression) 문자열을 사용한다.

 

- 만약 자료 파일 중에 건너 뛰어야 할 행이 있으면
- skiprows 인수를 사용한다.

 

- 특정한 값을 NaN으로 취급하고 싶으면
- na_values 인수에 NaN 값으로 취급할 값을 넣는다.

 

4. #### CSV 파일 출력
- 지금까지와 반대로 파이썬의 데이터프레임 값을 CSV 파일로 출력하고 싶으면 
- to_csv 메서드를 사용한다.

 

- 리눅스나 맥에서는 cat 셸 명령으로 파일의 내용을 확인
- 윈도우에서는 type 함수를 사용
- 느낌표(!)는 셸 함수를 사용하기 위한 아이파이썬(IPython) 매직 명령이다.

 

- 파일을 읽을 때와 마찬가지로 출력할 때도 
- sep 인수로 구분자를 바꿀 수 있다.

 

5. ### 인터넷 상의 CSV 파일 입력
---
- 웹상에는 다양한 데이터 파일이 CSV 파일 형태로 제공
- read_csv 명령 사용시 파일 패스 URL을 지정하면 PAndas가 직접 해당 파일을 다운로드하여 읽어들인다.
- 다음은 저자의 깃허브 웹사이트에 저장되어 있는 데이터 파일을 원격으로 읽는 명령

 

- 이 데이터프레임은 셀제로 데이터 갯수, 즉 행(row)의 수가 890개가 넘는 대량의 데이터이다.
- 이렇게 데이터의 수가 많을 경우, 데이터프레임의 표현(representation)은 데이터 앞, 뒤의 일부분만 보여줌
- 보여줄 행의 수는 display.max_rows 옵션으로 정할 수 있다.

 

6. #### 인터넷 상의 데이터 베이스 자료 입력
- Pandas_datareader 패키지의 DataReader 을 사용하면 일부 인터넷 사이트의 자료를 바로 pandas로 읽어들일 수 있다.
- pandas_datareader 패키지는 판다스와 별도로 설치해야 함.
- 다음은 pandas_datareader 피키지가 제공하는 인터넷 사이트의 예이다.
- 일부 인터넷 사이트는 유료이므로 별도의 가입절차를 거쳐야 한다.

 

- FRED
- Fama/French
- World Bank
- OECD
- Eurostat
- EDGAR Index
- TSP Fund Data
- Oanda currency historical rate
- Nasdaq Trader Symbol Definitions

- 자세한 내용은 다음 웹사이트를 참조한다.
https://pandas-datareader.readthedocs.io/en/latest/index.html

 

- data_source 인수로 데이터를 읽어올 웹 사이트를 지정한다.
- 데이터의 코드는 웹 사이트에서 검색하여 알아내야 한다.
- 다음은 FRED 데이터베이스에서 미국 국가총생산(GDP),
- 모든 항목을 폼함한 소비자 가격 지수(CPIAUGSL),
- 식료품 및 연로를 제외한 소비자 가격 지수(CPILFESL)를 가져오는 예이다.
- 웹사이트에서 자세한 데이터에 대한 세부적인 사항이나 값을 확인할 수 있다.
https://fred.stlouisfed.org/series/GDP

https://fred.stlouisfed.org/series/CPIAUCSL

https://fred.stlouisfed.org/series/CPILFESL