如何从SQL转换“数据框”?

时间:2019-05-09 17:35:34

标签: python sql pandas dataframe


我正在使用以下代码将数据帧从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...

所以我不知道这是怎么回事:我的代码或查询有问题吗?

无论如何我如何纠正它以获得正确的数据帧? (解决方案可能是我更正代码或通过操纵现有的数据框)。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

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

template <class T,
   typename std::enable_if_t<std::is_union<T>::value,
   int> = 0>
   void foo(T t) {
   // an implementation for union types
}

see more about documentation