Patrick's 데이터 세상

Python 데이터 분석 - 데이터 로딩 본문

Programming/Python

Python 데이터 분석 - 데이터 로딩

patrick610 2020. 6. 24. 21:58
반응형
SMALL

데이터 로딩은 크게 파일, 데이터베이스, 웹(웹스크래핑) 등으로 가져 올 수 있다.
데이터 가져오는 경로 : 1.file(주), 2.db, 3.web

 

작업 환경 : jupyterlab
   

  ◎ 데이터 분석

      data를 가져오면 데이터 분석영역으로 넣어야 함.

      데이터 분석 영역 : numpy, pandas, matplotlib

      * IPython → jupyter(보완 jupyterlab)

      * jupyterlab 환경
      > pip install jupyterlab # jupyterlab 설치

      > conda info --envs # 환경 확인
      > conda activate pyshpark # 해당 환경 활성화
        (맥) source activate pyshpark

      > python 파일이름.py  # 배치실행
      > python # 대화형 환경 실행

      jupyterlab 생성 예)
      > jupyter lab --notebook-dir=/Users/sunghwanpark/Desktop/shpark/Development/Python/Anaconda/Practice/nb-workspace # 해당 경로로 작업 환경 생성
      구글 colab으로 대체 가능

 


파일 쓰기


◎ data_files경로에 new-file이라는 텍스트 파일을 utf-8로 writing한다.

file = open("data_files/new-file.txt", "w", encoding="utf-8")

for i in range(1, 11):  # range(1, 11) : [1, 2, 3, ... 10]
    data = "%d번째 %d 데이터입니다. \n" % (i , i*10)    # 서식 여러개 넣기
    file.write(data)    # 파일에 데이터 쓰기

file.close()    # 파일 닫기

 

   * 문자열 안에 %와 함께 서식정보를 주면 데이터를 서식에 넣어서 사용
      (%d : 정수 서식  (참고 : 문자 자료형, 포맷 코드))

   * 파일을 open()하면 항상 close()하는 구문을 넣어줘야 resource leak 현상을 방지한다.
      with를 사용하면 자동을 열고 닫음.

파일 읽기


◎ data_files경로에 new-file이라는 텍스트 파일을 utf-8로 reading한다.

# open : 파일 열기
f = open("data_files/new-file.txt", "r", encoding="utf-8")

while True: # 무한 반복
    line = f.readline() # 줄바꿈 표시가 나올때까지 읽기 (한 줄 읽기) - 없으면 None
    if not line: break  # break : 반복문 종료
    print(line)

f.close()
f = open("data_files/new-file.txt", "r", encoding="utf-8")

lines = f.readlines()   # readlines 전체 데이터 읽기
                        # 전체 파일 읽기 -> 각 줄을 요소로 하는 배열 [1줄, 2줄, ...]
for line in lines:
    print(line)

f.close()

 

반응형
LIST

'Programming > Python' 카테고리의 다른 글

Python 데이터 분석 - Pandas  (0) 2020.06.24
Python 데이터 분석 - NumPy  (0) 2020.06.24
Python 환경 설치(Google Colab, Visual Studio Code, Anaconda)  (1) 2020.06.24
Python - 제어  (0) 2020.06.24
Python - 함수  (0) 2020.06.24
Comments