首页 > 解决方案 > 如何从 SQL 转换“数据框”?

问题描述


我正在使用以下代码将 SQL 中的数据框导入 Jupyter:

import pandas as pd
import pyodbc

conn = pyodbc.connect('Driver={SQL Server Native Client 11.0};'
                      'Server=SERVE_RNAME;'
                      'Database=DB_NAME;'
                      'Trusted_Connection=no;'
                      'UID=USER'
                      'PWD=PASSWORD')

cursor = conn.cursor()
cursor.execute('''
 SOME SQL QUERY (THAT I CANNOT CHANGE) GIVEN TO ME BY MY BOSS
''')

df = pd.DataFrame(cursor.fetchall())
conn.close()

问题是当我想看到df我得到的

df.head()

0   [2, 1098002, 19-01-2018, MEXN, SNLP, 19-01-201...
1   [2, 1069341, 29-01-2018, VALL, GDLJ, 29-01-201...
2   [2, 1074115, 31-01-2018, MEXN, GDLJ, 31-01-201...
3   [2, 1054977, 06-01-2018, GDLJ, VALL, 06-01-201...
4   [2, 1110098, 17-01-2018, MORE, MEXN, 17-01-201...

所以我不知道这里发生了什么:是我的代码有问题还是查询有问题?

无论如何,我该如何纠正它以获得正确的数据框?(解决方案可能是我更正我的代码或通过操作我已经拥有的数据框)。

任何帮助将不胜感激。

标签: pythonsqlpandasdataframe

解决方案


您可以简单地使用 read_sql() 来读取数据数据库

df=pd.read_sql(sql,con)

查看有关文档的更多信息


推荐阅读