Back-end

[MySQL] 파이썬을 활용, 데이터베이스에 CSV데이터 저장하기

HappinessChung 2021. 5. 30. 01:15
반응형

 

 

1. 사용할 라이브러리 임포트

import pandas as pd 
import pymysql 
import matplotlib.pyplot as plt 
%matplotlib inline 
import seaborn as sns 
sns.set()

 

2. 데이터베이스 연동

conn = pymysql.connect(host='호스트주소', user = '사용자이름', password='wktfd76251!', db = '데이터베이스이름',charset = 'utf8') 
curs = conn.cursor(pymysql.cursors.DictCursor)

 

3. 테이블 생성

sql = '''CREATE TABLE 테이블이름( 
col_vriable1 int(15) not null comment '표기될열이름1' primary key, 
col_vriable2 varchar(500) null comment '표기될열이름2', 
col_vriable3 varchar(500) null comment '표기될열이름3'
) 
''' 
curs.execute(sql) 

 

 

4. csv파일 읽기

stores_info = pd.read_csv('파일경로\파일이름.csv')

이때 stores_info를 dataframe이라고 한다.

 

5. 데이터프레임으로부터 데이터 읽어와서 데이터베이스에 저장

for index, row in 데이터프레임의이름.iterrows():
    tu = ( row.표기될열이름1, row.표기될열이름2,row.표기될열이름3) 
    curs.execute("""INSERT IGNORE INTO Store_Seoul_Info (col_variable1, col_variable2, col_variable3) VALUES (%s,%s,%s)"""
    ,tu)

주의할 점

(1) execute함수는 인자를 3개까지만 받으므로 추가하고자 하는 열의 갯수가 여러개인 경우 반드시 튜플로 처리 해 주어야 한다.

(2) 표기될 열의 이름과 열을 지칭하는 변수가 각각 어디에 들어가는지 주의.

(3) VALUES(?,?,?)가 아닌 VALUES(%s,%s,%s)를 사용한다.

 

6. 저장 및 데이터베이스 연결 종료

# 결과 저장 및 데이터베이스 종료
conn.commit()
conn.close()
반응형