본문 바로가기
IT/Data Analysis with python

데이터 로딩과 저장, 파일 형식

by Cyber_ 2024. 6. 2.

1. 텍스트 파일에서 데이터를 읽고 쓰는법

  • pandas.read_csv를 자주 사용할 것이다.
  • 텍스트 데이터를 DataFrame으로 읽어오는 함수는 다음과 같은 몇 가지 옵션을 취한다.
    • 색인
    • 자료형 추론과 데이터 변환
    • 날씨 및 시간 분석
    • 반복
    • 정제되지 않은 데이터 처리
  • resad_csv의 인수는 50가지가 넘어가니 필요한 것을 찾아 사용할 것, 왠만한 기능은 다 있다.

텍스트 파일 조금씩 읽어오기

  • pd.options.display.max_rows = 10, 최대 출력되는 행의 갯수를 10개로 제한
  • nrows: 처음 몇 행만 읽고 싶다면 사용
  • chunksize: 파일을 여러 조각으로 읽어볼 수 있다.

데이터를 텍스트 형식으로 기록하기

  • to_csv메서드를 이용하면 데이터를 쉼표로 구분된 형식으로 파일에 쓸 수 있다. 다른 구분자도 가능하다
    import sys
    

data.to_csv(sys.stdout, sep="|" # 구분자 변경
data.to_csv(sys.stdout, na_rep="NULL") # 누락된 값을 NULL 로 출력

### 다른 구분자 형식 다루기
- 간혹 read_csv 함수가 데이터를불러오는데 실패할 수 있다. csv.reader함수를 통해 해결
```python
import csv

f = open("example/ex7.csv")

reader csv(f)

for line in reader:
    print(line)

f.cloase()
  • csv.Dialect를 상속 받아 여러 옵션을 변경할 수 있다.
    class my_dialect(csv.Dialect):
      lineterminator = "\n"
      delimiter = ";"
      quotechar = '"'
      quoting = csv.QUOTE_MINIMAL
    

reader = csv.reader(f. dialect=my_dialect)

### JSON과 데이터
```python
import json

result = json.loads(obj) # json 문자열을 파이썬 형태로 변환
asjson = json.jumps(result) # 파이썬 객체를 JSON 형태로 변환

XML, HTML: 웹 스크래핑

HTML과 SML 형식의 데이터를 읽고 쓸 수 있는 라이브러리가 부척 많다. lxml은 가장 빠르게 작동하고 깨진 HTML과 XML 파일도 잘 처리하는 라이버리이다. 판다스에는 pandas에는 read_html을 사용하기 위해 설치를 해야한다.

conda install lxml beatifulsoup4 html5lib

or

pip install lxml
  • lxml.objectify를 사용하여 xml 파싱하기
    from lxml import objectify
    

path = "datasets/mea_pref/Performance_MNR.xml"

with open(path) as f:
parsed = objectify.parse(f) # 파일을 파싱

root = parsed.getroot() # xml파일의 루트 노드에 대한 참조 획득

root.INDICATOR # INDICATOR XML 요소를 모두 출력

## 2. 이진 데이터 형식
- 데이터를 이진 형식으로 저장하는 가장 간단한 방법은 파이썬 내장 pickle 모듈을 이용하는 것, 하지만 불안정하다.
### 엑셀
```python
conda install openpyxl xlrd

HDF5(대량의 과학 계산용 배열 데이터를 저장하기 위해 고안된 포맷)

conda install pytables

3. 웹 API와 함께 사용하기

conda install requests

4. 데이터베이스와 함께 사용하기

경량 DB sqlite3

import sqlite3