본문 바로가기

수업정리/Fundamental

[Python] 한글 유니코드 7 - sqlite3, index, gdown 파일 연결하기, pandas, openpyxl

sqlite3 hangulDB.sqlite3 

create index index_char_freq on han_characters(freq);  인덱스 만들어주기 > 나중에 쿼리 실행 빨라짐

.output t.sql

.dump

.quit

 grep -n 'INDEX' t.sql    t.sql 파일에 있는 인덱스 출력?

>1413:CREATE INDEX index_char_freq on han_characters(freq);


우리는  test_sqldb.py 파일에서 han_sqldb.py 를 import 해서 db 에 연결하고 여러 쿼리문을 sqlite3 에서 실행할 수 있는 함수들을 사용했다.

이제 추가로 index 를 부여하는 방법을 보고 얼마나 빠른지 보자

cp test_sqldb.py test_index_sqldb.py 로 파일을 만들어준다.

test_index_sqldb.py

 from han_sqldb import *
 import time

 start = time.time()
 conn=connect_db('hangulDB.sqlite3')
 conditionResult=select(conn, 'han_characters', '*')
 #print(conditionResult)
 conn.close()
 end=time.time()
 print('spent time befor index:',end-start)

 # add index
 conn=connect_db('hangulDB.sqlite3')
 sql_index(conn, 'create index idx_char_freq on han_characters(character, freq)')
 conn.close()

 #after adding

 start = time.time()
 conn=connect_db('hangulDB.sqlite3')
 conditionResult=select(conn, 'han_characters', '*')
 #print(conditionResult)
 conn.close()
 end=time.time()
 print('spent time after index:',end-start)

han_sqldb.py 에 sql_index 함수를 추가해준다.

 

속도가 빨라짐


 

pip install gdown

해준다.

 gdown 1KRV5EYHugibdY2rIt

임의 구글 드라이브 파일을 가져온다.


pip install pandas

pip install openpyxl
python
import pandas as pd

>>> df=pd.read_excel('music/Kpop_release.xlsx')
>>> type(df)
<class 'pandas.core.frame.DataFrame'>

df.columns   열(속성들) 만 출력
df.values    배열 형식으로 튜플들이 담김
 df.values.tolist()   리스트에 담기

pandas_xlsx_func.py    판다를 이용해서 엑셀 파일 데이터를 읽는 함수 작성하기

 #coding: utf-8

 import pandas as pd

 def show_data(infilename):
     df=pd.read_excel(infilename)
     print(df)
     cols=df.columns.to_list() #columns.to_list()
     print(cols)
     values=df.values.tolist() #values.tolist()
     print(values)

 if __name__=='__main__':
     #infilename='music/Kpop_release.xlsx'
     show_data('music/Kpop_release.xlsx')
     input('see next')
     show_data('music/Albums.xlsx')