본문 바로가기
DB

[DB] Pandas와 SQLite

by 자동매매 2022. 3. 4.

1) DataFrame 객체를 SQLite DB에 저장하기

import pandas as pd
from pandas import Series, DataFrame
import sqlite3


raw_data = {'col0': [1, 2, 3, 4], 'col1': [10, 20, 30, 40], 'col2':[100, 200, 300, 400]}
df = DataFrame(raw_data)
print(df)

con = sqlite3.connect("c:/Users/neo21/DB/kospi.db")
# DataFrame.to_sql(name, con, flavor='sqlite', schema=None, if_exists='fail', index=True, index_label=None, chunksize=None, dtype=None)
# if_exists: ='fail', 'replace', 'append'
# chunksize - 한 번에 써지는 로우의 크기를 정숫값으로 지정할 수 있다.
df.to_sql('test', con)

2) SQLite DB에서 테이블 로드하기

import pandas as pd
from pandas import Series, DataFrame
import sqlite3

con = sqlite3.connect("c:/Users/neo21/DB/kospi.db")
# read_sql(SQL 구문, Connection 객체, index_col: =DataFrame 객체에서 인덱스로 사용될 칼럼을 지정)
df = pd.read_sql("SELECT * FROM kakao", con, index_col=None)
print(df)
print('-'*20)

df1 = pd.read_sql("SELECT * FROM test", con, index_col=None)
print(df1)
print('-'*20)

df2 = pd.read_sql("SELECT * FROM test", con, index_col='index')
print(df2)

3) Pandas를 이용한 주가 데이터 저장

import pandas as pd
import pandas_datareader.data as web
import datetime
import sqlite3

start = datetime.datetime(2010, 1, 1)
end = datetime.datetime(2016, 6, 12)
df = web.DataReader("078930.KS", "yahoo", start, end)

# 쓰기
con = sqlite3.connect("c:/Users/neo21/DB/kospi.db")
df.to_sql('078930', con, if_exists='replace')

# 읽기
readed_df = pd.read_sql("SELECT * FROM '078930'", con, index_col = 'Date')

print(readed_df.head())

'DB' 카테고리의 다른 글

[DB] 증권사 API를 이용한 주가 데이터 저장  (0) 2022.03.04
[DB] SQLite  (0) 2022.03.03

댓글