当我想内部将查询数据连接到pandas dataframe之后,查询我的SQL(T-SQL)数据库的最有效方法是什么?
我不知道如何通过pyodbc查询将信息从python传递到SQL中> 2016年,所以我很容易要求,我知道product = private_car)。但是,如果我使用:
SELECT *
FROM rmrClaim
WHERE (PRODUCT = 'Private_Car') AND (YEAR >= 2016)
我仍将带来更多的数据。我宁愿做的是仅选择包含SQL DB中的Merge密钥(ID)的数据。
是否有一种更有效的方法来查询数据库,以便给定PANDAS数据框架,我只能列出以后内部加入所需的数据?我可以使用pyodbc将列表从python传递到SQL查询中?
编辑 - 尝试以不同的方式表达:
我有一个来自CSV(DataFrame A)的数据框,我想从SQL DB中获取数据以产生数据帧(DataFrame B)。我的SQL DB中的数据比DataFrame A中的数据大得多,因此我希望能够发送SQL查询,该查询仅请求数据框架中的数据比数据框大10倍A。我目前的想法是使用我对数据帧A的知识(即,dataFrame a中的所有数据均在2016年之后),但是,如果有一种方法可以将列表传递到我的SQL查询中,我可以更有效地查询数据的子集
使用pyodbc
并将查询传递给PANDAS DataFrame之前。这是一个示例:
import pandas as pd
import pyodbc
connstr = "Driver={SQL Server};Server=MSSQLSERVER;Database=Claims;Trusted_Connection=yes;"
df = pd.read_sql("SELECT * FROM rmrClaim WHERE (PRODUCT = 'Private_Car') AND (YEAR >= 2016) AND ID in {} ".format(dfA.Column), pyodbc.connect(connstr))
df