J.Y.S
¿ whats my interest ?
J.Y.S
전체 방문자
오늘
어제
  • 분류 전체보기 (59)
    • 트러블슈팅 기록 (7)
    • Java&Kotlin (5)
    • Server (22)
    • 데이터 엔지니어링 (3)
    • Architecture& Design Patter.. (1)
    • Daily (11)
    • 알고리즘 공부 (9)

블로그 메뉴

  • 홈
  • 태그

공지사항

인기 글

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
J.Y.S

¿ whats my interest ?

데이터 엔지니어링

pandas 통해서 csv 파일로 mysql에 테이블 생성하기

2022. 8. 18. 18:37

csv_to_mysql.py:

import time  
import pandas as pd  
import pymysql  
from sqlalchemy import create\_engine  
import configparser

# pandas에서 read\_csv할 때 'utf-8'으로 인코딩 하는 경우 에러가 날 수도 있음. -> 'cp949' 인코딩 사용

df = pd.read\_csv("./qa\_sample.csv", encoding='cp949')

# 설정 파일 경로

config\_path = "./settings.ini"

# 설정 파일 읽기

config = configparser.ConfigParser(interpolation = None)  
config.read(config\_path)

# params

user = config\['database'\]\['user'\]  
password = config\['database'\]\['password'\]  
host = config\['database'\]\['host'\]  
port = int(config\['database'\]\['port'\])  
database = config\['database'\]\['database'\]

# 실행 시작 시간

start\_time = time.time()

# DB 접속 엔진 객체 생성

engine = create\_engine(f'mysql+pymysql://{user}:{password}@{host}:{port}/{database}', encoding='utf-8')

# DB 테이블 명

table\_name = "qa"

# DB에 DataFrame 적재

df.to\_sql(index = False,  
name = table\_name,  
con = engine,  
if\_exists = 'append',  
method = 'multi',  
chunksize = 10000)

settings.ini 파일 예시:

[database]
user = root
password = root
host = localhost
port = 3000
저작자표시 (새창열림)

'데이터 엔지니어링' 카테고리의 다른 글

Airflow: 외부 시스템과 통신 | 시스템 간 데이터 이동  (0) 2022.09.07
[빅데이터를 지탱하는 기술] 1장 빅데이터 기초 지식과 Druid  (0) 2022.05.20
    '데이터 엔지니어링' 카테고리의 다른 글
    • Airflow: 외부 시스템과 통신 | 시스템 간 데이터 이동
    • [빅데이터를 지탱하는 기술] 1장 빅데이터 기초 지식과 Druid
    J.Y.S
    J.Y.S

    티스토리툴바