[TIL] Python with CSV

썹스·2024년 2월 11일

SQL

목록 보기
12/17

📌 Python with CSV

파이썬으로 MySQL DB에 접속하여 CSV파일을 활용할 수 있다.

CSV파일 : 2차원으로 데이터를 나타내는 파일로, 데이터의 형태는 행(ROW)과 열(COLUMN)로 구분되어 있으며 각 열 사이에는 쉼표(,)를 넣어 데이터의 속성을 구분한다.

✅ 파이썬으로 CSV 활용

import mysql.connector
import pandas as pd

### 판다스로 CSV 파일 읽어보기(데이터 확인)
df = pd.read_csv("<읽어올 CSV파일.CSV>")
df.head()


### Amazon RDS DB에 연결
remote = mysql.connector.connect(
  host = "<엔드포인트 번호>",
  port = 3306,
  user = "admin",
  password = "******",
  database = "<DB이름>"
)


### 커서 생성 및 데이터 추가 SQL문 작성
cursor = remote.cursor(buffered = True)     #VScode와 DB 연결 
sql = "inset into <테이블명> values(%s, %s)"  #순수 SQL 쿼리문


### 데이터 행의 수만큼 반복하여 SQL 쿼리 실행
for i, row in df.iterrows():
  cursor.execute(sql, tuple(row))  # 각 행 데이터를 튜플로 변환하여 SQL 쿼리 실행
  print(tuple(row))  # 테이블에 삽입된 데이터 출력
  remote.commit()    # 데이터 추가 사항을 DB에 즉각 반영


### 실행 결과 확인
## 테이블에 데이터가 정상적으로 INSERT 되었는지 확인
cursor.execute("select * from <테이블명>")  # 데이터 조회 SQL 쿼리 실행

result = cursor.fetchall()  # 조회 결과를 result에 전달
for row in result:   # 조회 결과 확인
  print(row)


### 실행 결과를 Pandas로 읽기
df = pd.DataFrame(result)
df   # 판다스로 데이터 읽기

✅ CSV 인코딩

CSV 파일을 읽어올 때 한글파일이 깨져있는? 경우가 있을 수 있다.
이때 매개변수 encoding = "euc-kr"를 추가하면 한글 문자를 확인 할 수 있다.

df = pd.read_csv("<읽어올 CSV파일.CSV>", encoding = "euc-kr")  
df.head()
profile
코린이

0개의 댓글