如何在SQLite DB中存储Pandas DataFrame

Sri*_*ary 4 python sqlite pandas

我找不到有关此主题的优秀教程。我有一个熊猫数据框,df为

Fu(varchar)  val

aed          544.8
jfn          5488
vivj         89.3
vffv         87.5
Run Code Online (Sandbox Code Playgroud)

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

Max*_*axU 7

演示:

>>> import sqlite3
>>> conn = sqlite3.connect('d:/temp/test.sqlite')
>>> df.to_sql('new_table_name', conn, if_exists='replace', index=False)
>>> pd.read_sql('select * from new_table_name', conn)
     Fu     val
0   aed   544.8
1   jfn  5488.0
2  vivj    89.3
3  vffv    87.5
Run Code Online (Sandbox Code Playgroud)


Man*_*nez 5

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

>>> from sqlalchemy import create_engine
>>> engine = create_engine('sqlite:///:memory:', echo=False)
Run Code Online (Sandbox Code Playgroud)

让你的 df:

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

然后在 SQL 数据库上创建新表:

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

摘自 Pandas 文档