728x90
파이썬에서 mysql 데이터에 upsert하는 과정을 보여드리겠습니다.
1. 필요한 라이브러리 불러오기
import pandas as pd
import pymysql
2. upsert할 데이터 작성하기
price = pd.DataFrame({
"날짜": ['2021-01-04', '2021-01-04'],
"티커": ['000001', '000002'],
"종가": [1320, 1315],
"거래량": [2100, 1500]
})
args = price.values.tolist()
3. pymysql을 통해 필요한 정보 입력하기
con = pymysql.connect(
user = 'root',
password = '1234',
host = '127.0.0.1',
db = 'exam',
charset = 'utf8'
)
4. 쿼리 작성을 통해 upsert 완료 후 종료하기
query = """
insert into price_2 (날짜, 티커, 종가, 거래량)
values (%s, %s, %s, %s) as new
on duplicate key update
종가 = new.종가, 거래량 = new.거래량;
"""
#values 부분에는 입력하는 데이터의 열 갯수만큼 %s를 입력
mycursor = con.cursor()
mycursor.executemany(query, args)
con.commit()
con.close()
-모든 코드-
import pandas as pd
import pymysql
price = pd.DataFrame({
"날짜": ['2021-01-04', '2021-01-04'],
"티커": ['000001', '000002'],
"종가": [1320, 1315],
"거래량": [2100, 1500]
})
args = price.values.tolist()
con = pymysql.connect(
user = 'root',
password = '1234',
host = '127.0.0.1',
db = 'exam',
charset = 'utf8'
)
query = """
insert into price_2 (날짜, 티커, 종가, 거래량)
values (%s, %s, %s, %s) as new
on duplicate key update
종가 = new.종가, 거래량 = new.거래량;
"""
#values 부분에는 입력하는 데이터의 열 갯수만큼 %s를 입력
mycursor = con.cursor()
mycursor.executemany(query, args)
con.commit()
con.close()