我试图从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。关键是速度。连接/查询是否有更快捷的方式?
答案 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...