将Python SQLite数据库转换为HDF5
一个Pandas的DataFrame可以这样转换成hdf5文件:
df.to_hdf('test_store.hdf','test',mode='w')
我有一个sqlite数据库文件,我需要把它转换成hdf5文件,然后我会通过Pandas使用 pd.read_hdf
来读取这个hdf5文件。
但是首先,我该怎么把Python的sqlite数据库转换成hdf5文件呢?
编辑:
我知道可以使用Pandas中的 .read_sql
方法。但我想先把数据库转换成hdf5格式。
2 个回答
1
看看这个 ---
http://www.tutorialspoint.com/sqlite/sqlite_limit_clause.htm
这个想法是对一个 select * from table
的查询进行循环,并通过逐渐增加的偏移量来限制结果。然后把结果写入到上面提到的 hdf5 数据存储中。首先用 select count(*) from table
来计算表中的条目数量,然后把循环分成可以管理的小块。例如,如果有400万条记录,就每次读取20万条,并把偏移量从0、20万、40万等逐步增加。
我需要对一个非常大的 sqlite 文件这样做。如果成功了会再报告结果。
6
这其实很简单:用pandas就行!
pandas可以直接从SQL数据库读取数据,并把这些数据放到一个叫做DataFrame的结构里。一旦你有了这个DataFrame,你就可以随意对它进行操作。
下面是一个简单的例子,摘自官方文档:
import sqlite3
from pandas.io import sql
# Create your connection.
cnx = sqlite3.connect('mydbfile.sqlite')
# read the result of the SQL query into a DataFrame
data = sql.read_sql("SELECT * FROM data;", cnx)
# now you can write it into a HDF5 file
data.to_hdf('test_store.hdf','test',mode='w')