如何在SQLite DB中存储pandas DataFrame

时间:2018-06-11 17:24:26

标签: python pandas sqlite

我无法找到关于此主题的好教程。我有一个pandas数据框,df为

Fu(varchar)  val

aed          544.8
jfn          5488
vivj         89.3
vffv         87.5

我想创建一个数据库和一个表并将数据帧存储在其中

2 个答案:

答案 0 :(得分:3)

演示:

In [6]: import sqlite3

In [7]: conn = sqlite3.connect('d:/temp/test.sqlite')

In [8]: df.to_sql('tab', conn, if_exists='replace', index=False)

In [9]: pd.read_sql('select * from tab', conn)
Out[9]:
     Fu     val
0   aed   544.8
1   jfn  5488.0
2  vivj    89.3
3  vffv    87.5

答案 1 :(得分:1)

首先创建与SQL数据库的连接:

>>> from sqlalchemy import create_engine
>>> engine = create_engine('sqlite:///:memory:', echo=False)

制作你的df:

>>> df = pd.DataFrame(index=['aed', 'jfn', 'vivj', 'vfv'],
                      data={'val':[544.8, 5488, 89.3, 87.5]})

然后在SQL DB上创建新表:

>>> df.to_sql('test', con=engine)
>>> engine.execute('SELECT * FROM test').fetchall()
[('aed', 544.8), ('jfn', 5488.0), ('vivj', 89.3), ('vfv', 87.5)]

Taken from Pandas documentation