用列名称执行和读取Microsoft SQL查询到Pandas DataFrame



我正在尝试执行查询,然后将其放入数据框架中。由于某种原因,它仅是加载列0。将整个结果集加载到该列中。

这是我在做的

conn = pyodbc.connect("connection info")
cursor = conn.cursor()
cursor.execute = "sql statement"
names = [ x[0] for x in cursor.description]
rows = cursor.fetchall()
df = pd.DataFrame(rows, columns = names)

我有这个错误。

ValueError: Shape of passed values is (1, 421), indices imply (5, 421)

假设是5列,但是当我在没有"列=名称"的情况下运行它,并且数据框架正在返回一列。在此列中,它将从SQL查询中存储5列的整个数据集。

这是我在没有"列名"的情况下运行结果集的一个示例:

(9026461, 875, 110, Decimal('1.08'), 3100)

这最终与以下内容一起使用:

 engine = create_engine('mssql+pyodbc://serverName/DatabaseName?  driver=SQL+Server+Native+Client+11.0')
 connection = engine.connect()
 resultSet = connection.execute("select column1, column2 from ....")
 df = pd.DataFrame(resultSet.fetchall())
 df.columns = resultSet .keys()

相关内容

  • 没有找到相关文章

最新更新