//pandas, dataframe을 import
import pandas as pd
from pandas import Series, DataFrame
//딕셔너리 타입의 데이터
raw_data = {'col0' : [1, 2, 3, 4], 'col1' : [10, 20, 30, 40], 'col2' : [100, 200, 300, 400]}
type(raw_data)
Out[35]: dict
//딕셔너리 타입의 데이터를 dataframe 객체 생성
df = DataFrame(raw_data)
df
Out[37]:
col0 col1 col2
0 1 10 100
1 2 20 200
2 3 30 300
3 4 40 400
pandas의 DataFrame 클래스는 DataFrame 객체를 'to_sql" 메소드를 이용하여 데이터베이스로 저장 가능.
데이터베이스에 저장된 데이터를 DataFrame 객체로 "read_sql" 모세드를 이용하여 저장 가능
import sqlite3
con=sqlite3.connect("/Users/mhy/test/kospi.db")
//DataFrame 객체인 df를 con(db)에 'text' 테이블로 데이터로서 삽입하기
df.to_sql('test', con)
//con(db)에서 'test'테이블을 선택하여 df 변수에 바인딩하기
df = pd.read_sql("SELECT * FROM test", con, index_col=None)
df
Out[42]:
index col0 col1 col2
0 0 1 10 100
1 1 2 20 200
2 2 3 30 300
3 3 4 40 400
df = pd.read_sql("SELECT * FROM test", con, index_col='index')
df
Out[45]:
col0 col1 col2
index
0 1 10 100
1 2 20 200
2 3 30 300
3 4 40 400
응응: 웹에서 데이터 받아서 db에 저장하기
import pandas as pd
import pandas_datareader.data as web
import datetime
import sqlite3
//DataReader로 데이터 받기
start = datetime.datetime(2010, 1, 1)
end = datetime.datetime(2020, 4, 12)
df = web.DataReader("078930.KS", "yahoo", start, end)
//잘 받았는지 확인
df.head()
Out[53]:
High Low Open Close Volume Adj Close
Date
2010-01-04 34050.0 33500.0 33500.0 33750.0 237735.0 26427.386719
2010-01-05 34500.0 33600.0 33950.0 33900.0 440485.0 26544.845703
2010-01-06 34900.0 33900.0 33900.0 34250.0 534581.0 26818.904297
2010-01-07 35100.0 34300.0 34350.0 34600.0 543769.0 27092.962891
2010-01-08 35100.0 34200.0 34700.0 34450.0 553288.0 26975.513672
//db에 연결
con=sqlite3.connect("/Users/mhy/test/kospi.db")
//db에 테이블 만들어서 데이터 넣기
df.to_sql('078930', con, if_exists='replace')
//df.to_sql('078930', con, if_exists='append')
//db에서 데이터 가져오기
readed_df = pd.read_sql("SELECT * FROM '078930'", con, index_col='Date')
readed_df.head()
Out[69]:
High Low Open Close Volume \
Date
2010-01-04 00:00:00 34050.0 33500.0 33500.0 33750.0 237735.0
2010-01-05 00:00:00 34500.0 33600.0 33950.0 33900.0 440485.0
2010-01-06 00:00:00 34900.0 33900.0 33900.0 34250.0 534581.0
2010-01-07 00:00:00 35100.0 34300.0 34350.0 34600.0 543769.0
2010-01-08 00:00:00 35100.0 34200.0 34700.0 34450.0 553288.0
Adj Close
Date
2010-01-04 00:00:00 26427.386719
2010-01-05 00:00:00 26544.845703
2010-01-06 00:00:00 26818.904297
2010-01-07 00:00:00 27092.962891
2010-01-08 00:00:00 26975.513672
'개발 > 파이썬' 카테고리의 다른 글
[파이썬] 기본 문법2 (0) | 2020.04.18 |
---|---|
[파이썬] 콘다 설정 (0) | 2020.04.18 |
[파이썬] sqlite3, DB에서 데이터 읽기, 변수에 바인딩, 변수는 리스트 (0) | 2020.04.18 |
[파이썬] sqlite3 브라우저를 이용하여 데이터 확인하기 (0) | 2020.04.18 |
[파이썬] sqlite3 데이터베이스 생성, 테이블 생성, 데이터 넣기 (0) | 2020.04.18 |