将Python SQLite数据库转换为HDF5

5 投票
2 回答
2692 浏览
提问于 2025-04-18 01:51

一个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')

撰写回答