pandas
로 sqlite3
파일에서 300백만개 정도 되는 row의 데이터를 읽어올 일이 있었다. 하지만 이건 속도가 너무 느리다.
connectorx
와 비교해보자.
1. 사용법 비교
(1) pandas
import sqlite3
import pandas as pd
local_file_path = "/absolute/path/to/sqlite3/db"
conn = sqlite3.connect(local_file_path)
to_read = pd.read_sql(
"SELECT * FROM '{tbl_name}'".format(tbl_name=tbl_name),
conn, parse_dates=['timestamp']
)
(2) connectorx
import connectorx as cx
local_file_path = "/absolute/path/to/sqlite3/db"
to_read = cx.read_sql(
"sqlite://" + local_file_path,
"SELECT * FROM '{tbl_name}'".format(tbl_name=tbl_name)
)
2. 시간비교
3백만여개 row 기준으로 읽어오는 속도를 비교해보면 다음과 같이 아주 차이가 많이 난다.
pandas
: 2분 5초connectorx
: 19초
728x90
'python 메모' 카테고리의 다른 글
[pandas] excel로 저장할 때 IllegalCharacterError가 뜰 때 (0) | 2024.03.05 |
---|---|
[matplotlib] 여러개의 다른 y축 그래프를 한 그래프에 그리기 (1) | 2024.02.11 |
[python] list를 chunk로 나누는 방법들(메모) (0) | 2024.01.03 |
[regex] 정규표현식 메모용 (0) | 2023.12.18 |
[websocket] 연결이 끊겼을 때 reconnect를 위한 방법들 (0) | 2023.12.16 |