当前位置: 首页 > 面试题库 >

如何将数据帧作为参数传递给Python中的SQL查询?

潘琪
2023-03-14
问题内容

我有一个由一列值组成的数据框,我想将其作为参数传递来执行以下sql查询:

query = "SELECT ValueDate, Value"\
        "FROM Table "\
        "WHERE [ID] in ( ? ) "

因此,我尝试了许多其他事情:

      df = pd.read_sql_query(query, conn, params=[ df['ID'].values ])
      df = pd.read_sql_query(query, conn, params=[ df['ID'].tolist ])
      df = pd.read_sql_query(query, conn, params=[ list(df['ID'].values) ])
       ...

传递数据帧值的正确方法是什么?

注意:我使用的是Microsoft SQL Server,因此查询格式需要与我一样。


问题答案:

这能满足您的需求吗?

import pandas as pd

your_column = pd.Series([1,2,3,4,5,6,7,8,9])

query = "SELECT ValueDate, Value"\
        "FROM Table "\
        "WHERE [ID] in {}".format(tuple(your_column))

print(query)
# 'SELECT ValueDate, ValueFROM Table WHERE [ID] in (1, 2, 3, 4, 5, 6, 7, 8, 9)'

然后,您应该能够查询而无需更多参数。

df = pd.read_sql_query(query, conn)


 类似资料:
  • 问题内容: 我有一个整数或字符串列表,需要将其作为Delphi DataSet的参数传递。怎么做? 这是一个例子。MyQuery类似于: 我将参数设置为列表或数组或其他内容: 它将导致此查询发送到sql服务器: 如果该解决方案也可以与字符串一起使用,则执行以下查询会更好: 变得: 我相信这是一个简单的问题,但是“ IN”并不是搜索网络的好关键字。 请回答如何在IDE中配置参数,查询以及如何传递参数

  • 我写了一个代码来管理一个咖啡馆,所以在框架中我添加了一个JTable,每次我从JComboBox中选择一个项目,它都应该显示在JTable中。为此,我添加了一个按钮,对于它的操作,我确保每次单击它时,它都将从JComboBox中单击的项存储在数据库中,然后将从数据库中获取的项存储在JTable中。但问题是JTable有两列,而JComboBox中的选择只有一列。因此,另一列必须从其他数据库调用,这

  • 我正在使用一个第三方库函数,它有大量的位置参数和命名参数。在我的代码中,从多个点使用相同的参数/值调用该函数。 为了便于维护,我不想在代码中多次硬编码几十个相同的参数。我希望有一种方法可以在数据结构中存储它们一次,所以我只需要传递数据结构。按照以下思路: 假设我调用的函数的签名如下: 假设在我的代码中,我想用 for arg1, for arg2 for arg4 (而且我没有使用arg3)。 我

  • 问题内容: 我想将数组作为参数传递给SqlQuerySpec,以便在构建对天蓝色的db数据库的查询时可以在IN表达式中使用它。我想做的是像我们对常规参数(字符串,整数等)所做的事情: 但是,这种方式是行不通的。我还有其他方法可以将数组作为参数传递吗?谢谢。 问题答案: 您的查询应如下所示: 那么您可以将其作为数组传递,并检查该数组是否包含文档中属性中具有的值。 参考: https://docs.m

  • 问题内容: 我的密码 第一个文件: 第二档: 在上面的代码中,仅将“数据”字典的键传递给,但我希望键值对传递。如何纠正呢? 我希望这样被修改 这是我的要求,根据此给出答案 编辑: 字典键 类 更改为 标准 问题答案: 如果要像这样使用它们,请正常定义变量名称的函数: 现在,您可以在 调用 函数时使用: 它会按您想要的方式工作。 PS 请勿使用。等保留字(例如,改用)

  • 我想在方法中传递一个JFrame作为参数,可以吗? 这里是我想要的: