[제로베이스] 데이터 사이언스 12기 - (03-16 스터디노트)

윤태호·2023년 3월 16일
0
post-thumbnail

오늘 수강한 강의 - Python with MySQL (01 ~ 12)

01 ~ 12 Python with MySQL

실습환경 만들기

  • Jupyter Notebook 실행
- VSCode 혹은 Web Browser 를 통해 실행하고, ds_study 환경에서 작업
- Jupyter notebook 과 mysql 은 모두 sql_ws 폴더에서 시작
- AWS RDS 로 생성한 database-1 을 모두 사용
  • AWS RDS(database-1) zerobase 의 police_station 테이블의 데이터를 모두 삭제
  • VSCode 의 경우 새파일을 열고 해당 파일명을 입력
  • 오른쪽 상단에서 ds_study 를 선택한 뒤 실습

Python with MySQL

  • Python 에서 MySQL 을 사용하기 위해서는 먼저 MySQL Driver 를 설치
  • 설치 확인

[Create Connection]

  • MySQL 에 접속하기 위한 코드
  • 예제 1 - Local Database 연결
  • 예제 2 - AWS RDS (database-1) 연결

[Close Database]

  • 예제 1
  • 예제 2

    [Connect to Database]
  • 특정 Database 에 접속하기 위한 코드
  • 예제 1 - Local MySQL 의 zerobase 연결
  • 예제 2 - AWS RDS (database-1) 의 zerobase 에 연결

[Execute SQL]

  • Query 를 실행하기 위한 코드
  • 예제 1 - 테이블 생성
  • 결과 확인
  • 예제 2 - 테이블 삭제
  • 결과 확인

[Execute SQL File 1]

  • SQL File 을 실행하기 위한 코드
  • 예제 1 - test03.sql 생성
  • test03.sql 실행
  • 결과 확인

[Execute SQL File 2]

  • SQL File 내에 Query 가 여러개 존재하는 경우
  • 예제 2 - test04.sql 생성
  • 실행 (에러)
  • Multi = True
  • 결과 확인

[Fetch All]

  • 예제 1 - sql_file 테이블 조회 (읽어올 데이터 양이 많은 경우 buffered=True)
  • 참고, 검색결과를 Pandas 로 읽기

Python with CSV

CSV 에 있는 데이터를 Python 으로 INSERT

[Read CSV]
제공받은 police_station.csv 를 Pandas 로 읽어와서 데이터를 확인

[Zerobase 에 연결]

[Cursor 만들기]
읽어올 양이 많은 경우 cursor 생성 시 buffer 설정을 해준다

[INSERT 문 만들기]

[데이터 입력]
commit() 은 database 에 적용하기 위한 명령

결과 확인

검색결과를 Pandas 로 읽기

csv 한글이 깨지는 경우, encoding 값을 'euc-kr' 로 설정 (특히 우리나라 사이트에서 제공받은 csv 파일들)

Python with CSV 예제

crime_status 테이블에 2020_crime.csv 데이터를 입력하는 코드를 작성
  • AWS RDS(database-1) zerobase 에 접속
  • 2020_crime.csv 데이터(encoding='euc-kr') 읽어오기
  • INSERT 쿼리 작성
  • 데이터를 crime_status 테이블에 INSERT
  • crime_status 테이블의 데이터 조회
  • 조회한 결과를 Pandas 로 변환해서 확인

재미있었던 부분

SQL을 이용하여 저장했던 데이터를 전에 배운 EDA 부분의 pandas와 연결하여 다룰 수 있어서 재미있었다

어려웠던 부분

Fetch all, buffered, cursor 등 새로운 기능들이 많이 나와서 헷갈리고 아직까지도 혼자 코드에서 적용하여 사용하기에는 문법이 어렵다

느낀점 및 내일 학습 계획

한 단원 한 단원 지나갈수록 모르는 것들이 너무 쌓여가는 느낌이라서 걱정이 되는 것 같다
내일은 PRIMARY KEY, FOREIGN KEY를 공부할 예정이다

profile
부트캠프 참여중

0개의 댓글