本文說的輕量級的數(shù)據(jù)保存指的是sqlite,比如一些手機App的操作都會采用該數(shù)據(jù)庫來完成對數(shù)據(jù)保存。
一個sqlite數(shù)據(jù)庫的大小在KB之間,pandas模塊提供的DataFrame數(shù)據(jù)對象也支持了關(guān)于sqlite的引擎。
為了減少數(shù)據(jù)保存的磁盤空間,使得excel或者csv等格式的數(shù)據(jù)分析結(jié)果進行統(tǒng)一化的保存,使用sqlite的極好的。
這里使用兩個python的非標準庫分別是pandas和sqlalchemy,若是沒有則使用pip的方式直接安裝即可。
pip install pandas
pip install sqlalchemy
使用方式也比較簡單,將這兩個安裝好的模塊分別導(dǎo)入到代碼塊中。
# Importing the pandas module and giving it an alias of pd.
import pandas as pd
# Importing the create_engine function from the sqlalchemy module.
from sqlalchemy import create_engine
將本地的excel或者csv數(shù)據(jù)讀取返回DataFrame對象,現(xiàn)實情況中可能還要進行數(shù)據(jù)處理。
# Reading the excel file and storing it in a dataframe.
data_frame = pd.read_excel('D:/test-data-work/data.xlsx')
# Printing the dataframe.
print(data_frame)
這個時候DataFrame格式的數(shù)據(jù)已經(jīng)存在了,現(xiàn)在考慮使用sqlite將數(shù)據(jù)進行保存。
首先,使用sqlalchemy模塊的create_engine函數(shù)創(chuàng)建sqlite的數(shù)據(jù)庫引擎。
# Creating a sqlite database called test.db.
engine = create_engine('sqlite:///test.db')
使用DataFrame對象提供的to_sql()函數(shù)將該data_frame保存到sqlite數(shù)據(jù)庫表名稱為data的數(shù)據(jù)表中。
# Saving the dataframe to the sqlite database.
data_frame.to_sql('data', engine)
保存完成之后會在本地的當前環(huán)境下生成test.db的數(shù)據(jù)庫文件了。
若是想要讀取存儲的結(jié)果pandas模塊也提供了read_sql()函數(shù)讀取后再次返回DataFrame的數(shù)據(jù)對象。
# Reading the data from the sqlite database.
result_ = pd.read_sql('data', engine)
# Printing the dataframe that was read from the sqlite database.
print(result_)
# index 姓名 年齡 班級 成績 表現(xiàn) 入學(xué)時間
# 0 0 Python 集中營 10 1210 99 A 2022-10-17
# 1 1 Python 集中營 11 1211 100 A 2022-10-18
# 2 2 Python 集中營 12 1212 101 A 2022-10-19
# 3 3 Python 集中營 13 1213 102 A 2022-10-20
# 4 4 Python 集中營 14 1214 103 A 2022-10-21
# .. ... ... ... ... ... .. ...
# 194 194 Python 集中營 186 1386 275 A 2023-04-29
# 195 195 Python 集中營 187 1387 276 A 2023-04-30
# 196 196 Python 集中營 188 1388 277 A 2023-05-01
# 197 197 Python 集中營 189 1389 278 A 2023-05-02
# 198 198 Python 集中營 190 1390 279 A 2023-05-03
如果有直接操作sqlite數(shù)據(jù)庫的需要,可以到sqlite官網(wǎng)下載客戶端工具直接進行SQL層面的增刪改查操作。
https://www./download.html