在尝试将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会话中导入数据库表进行探索性数据分析,但没有成功。 我究竟做错了什么?是否有针对新手的文档/教程以及一些示例?
在此先感谢您的帮助!
答案 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建立。
谢谢