熊猫:使用read_sql-`con`参数和表名

时间:2019-05-15 13:41:56

标签: python pandas sqlite

在尝试将sql数据库导入python pandas数据帧时,出现语法错误。我是新手,所以问题可能很简单。

http://www.sqlitetutorial.net/sqlite-sample-database/下载sqlite示例chinook.db之后 并阅读了熊猫文档,我尝试使用

将其加载到熊猫数据框中
import pandas as pd
import sqlite3

conn = sqlite3.connect('chinook.db')
df = pd.read_sql('albums', conn) 

其中'albums'是从命令行通过sqlite3收集的'chinook.db'表。

结果是:

...
DatabaseError: Execution failed on sql 'albums': near "albums": syntax error

我尝试了上述代码的各种变体,以在ipython会话中导入数据库表进行探索性数据分析,但没有成功。 我究竟做错了什么?是否有针对新手的文档/教程以及一些示例?

在此先感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

找到了!

可以在此处找到与SQLAlchemy的数据库连接示例: https://www.codementor.io/sagaragarwal94/building-a-basic-restful-api-in-python-58k02xsiq

import pandas as pd
from sqlalchemy import create_engine

db_connect = create_engine('sqlite:///chinook.db') 
df = pd.read_sql('albums', con=db_connect)
print(df)

正如@ Anky_91所建议的那样,pd.read_sql_table也可以工作,因为read_sql包装了它。

问题是连接,必须通过SQLAlchemy而不是sqlite3建立。

谢谢