09/27

채언·2022년 9월 27일
0

SQL / 데이터 분석

목록 보기
2/16

csv 파일을 python이용하여 데이터베이스로

1. csv 파일 읽어오기

  • 불러올 csv 파일은 다음과 같다.

  • 현재 실행중인 경로에, csv 파일 옮긴 후 파이썬 판다스 이용하여 csv 파일을 읽어온다.

  • AWS 데이터베이스와 연결하면서 바로 zerobase 데이터베이스로 연결
  • 커서 생성, 많은 데이터 양이 있으므로 buffered 옵션 true로 지정한다.

2. insert 문 만들기

  • csv 파일에서 가져온 데이터를 테이블에 넣기위해 insert문을 작성한다. 이때, 하나의 변수에 insert문을 작성해주고 이따 for문을 이용해 반복할것이다. valuse는 string 값이므로 %s로 작성한다.
  • for 문과 iterrows()를 이용해 데이터값을 출력해본다.
  • 나중에 police_staion 테이블의 'name' 컬럼과 'address' 컬럼에 데이터 값을 쉽게 넣기 위해, 읽어온 데이터를 튜플 형태로 변형해서 사용한다.

3. commit()

  • commit() 을 실행하면, 데이터값을 테이블에 적용한다는 뜻이다. for 문 안에 commit()을 사용하면 매 for문이 한번 실행 될때마다 테이블에 값을 넣게 된다. for문 밖에 commit()을 사용하면 for문이 다 돌고난후, 마지막에 테이블에 값을 적용하기때문에 for문을 돌면서 에러가 있었다면, 테이블에는 아무 값도 적용되지 않는다.

  • for 문 안에 commit() 을 적용했고, 매 번 for문이 돌때마다 값은 테이블에 들어갈것이다. 이럴 경우에는, 에러가 나기 전까지는 테이블에 값이 다 적용된다.

  • commint() 이용해 실행 후,테이블을 조회해보면 데이터들이 들어간것을 볼 수 있다.
    마지막으로, execute로 모든 값을 조회하고 조회한 값을 fetchall을 사용해 result 변수에 저장한다.

4. 판다스 이용해 데이터프레임 출력하기

  • 판다스 데이터프레임을 이용해, fethcall로 저장했던 데이터값을 바로 데이터프레임으로 출력할 수 있다.

5. 2020_crime csv 파일 가져와서 crime_status 테이블에 넣기

1) euc-kr 으로 인코딩 되어있는 csv 파일을 불러와서 판다스 이용하여 조회한다.

2) AWS RDS와 연결하고, insert문을 작성한 후, for문 이용하여 모든 데이터 값을 데이터베이스에 적용해준다. (제로베이스 데이터베이스의 crime_status에 데이터값을 넣는과정) 터미널로 테이블을 조회해보면 값이 제대로 들어가있는걸 볼 수 있다.

3) 마지막으로, 테이블의 값을 조회하여 fetchall()을 이용해 result 변수에 값을 저장하고 데이터프레임으로 조회한다.

profile
화이팅!

0개의 댓글