파이썬으로 MySQL DB에 접속하여 CSV파일을 활용할 수 있다.
CSV파일 : 2차원으로 데이터를 나타내는 파일로, 데이터의 형태는 행(ROW)과 열(COLUMN)로 구분되어 있으며 각 열 사이에는 쉼표(,)를 넣어 데이터의 속성을 구분한다.
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 파일을 읽어올 때 한글파일이 깨져있는? 경우가 있을 수 있다.
이때 매개변수 encoding = "euc-kr"를 추가하면 한글 문자를 확인 할 수 있다.
df = pd.read_csv("<읽어올 CSV파일.CSV>", encoding = "euc-kr")
df.head()