从pypyodbc数据库查询返回单个字符串

时间:2017-07-26 10:21:51

标签: python sql-server python-3.x pandas pypyodbc

我试图从MSSQL DB中取回一个值,代码如下:

import pandas as pd
import pypyodbc
query = 'SELECT TOP(1) value FROM [dbo].[table]'
connection = pypyodbc.connect(...)
df = pd.read_sql_query(query, connection)

但是这会返回一个dataframe对象,是否有一个方法只返回一个字符串值,可能没有Pandas。关键是速度。连接/查询是否有更快捷的方式?

1 个答案:

答案 0 :(得分:1)

如果处理速度对您很重要,请考虑以矢量化 Pandas / NumPy / SciPy / SKLearn方式实施您的算法。

使用向量化方法通常意味着使用内部函数,这些函数使用向量和矩阵而不是标量,并且使用C,C-Python等实现(优化)而不是编写循环。

如果您的算法无法进行矢量化,您仍然可以加快算法速度 - 一次读取您想要处理的所有数据,而不是循环执行:

query = 'SELECT value FROM [dbo].[table]'  # <-- NOTE: i have intentionally removed `TOP(1)`
connection = pypyodbc.connect(...)
df = pd.read_sql_query(query, connection)

# process your data (from the DataFrame) here...