- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
有没有关于如何在 Pandas 中通过 SQL 查询传递参数的示例?
特别是我使用 SQLAlchemy 引擎连接到 PostgreSQL 数据库。到目前为止,我发现以下工作:
df = psql.read_sql(('select "Timestamp","Value" from "MyTable" '
'where "Timestamp" BETWEEN %s AND %s'),
db,params=[datetime(2014,6,24,16,0),datetime(2014,6,24,17,0)],
index_col=['Timestamp'])
Pandas 文档说 params 也可以作为 dict 传递,但我似乎无法通过尝试使其工作:
df = psql.read_sql(('select "Timestamp","Value" from "MyTable" '
'where "Timestamp" BETWEEN :dstart AND :dfinish'),
db,params={"dstart":datetime(2014,6,24,16,0),"dfinish":datetime(2014,6,24,17,0)},
index_col=['Timestamp'])
从 Pandas 运行这些类型的查询的推荐方法是什么?
最佳答案
read_sql
文档说这个 params
参数可以是列表、元组或字典(参见 docs)。
要在 sql 查询中传递值,可以使用不同的语法:?
、:1
、:name
、 %s
,%(name)s
(见 PEP249)。
但并非所有数据库驱动程序都支持所有这些可能性,支持哪种语法取决于您使用的驱动程序(我想在您的情况下为 psycopg2
)。
在第二种情况下,当使用字典时,您使用的是“命名参数”,根据 psycopg2
文档,它们支持 %(name)s
样式(所以不是 :name
我想),见 http://initd.org/psycopg/docs/usage.html#query-parameters .
所以使用这种风格应该可以工作:
df = psql.read_sql(('select "Timestamp","Value" from "MyTable" '
'where "Timestamp" BETWEEN %(dstart)s AND %(dfinish)s'),
db,params={"dstart":datetime(2014,6,24,16,0),"dfinish":datetime(2014,6,24,17,0)},
index_col=['Timestamp'])
关于python - 带参数的 Pandas read_sql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24408557/
我通过 Pandas 的 read_sql 和外部应用程序 (DbVisualizer) 运行完全相同的查询。 DbVisualizer 返回 206 行,而 pandas 返回 178 行。 我曾尝
我正在尝试做异步等价物 engine = create_engine('sqlite:///./test.db') stmt = session.query(MyTable) data = pd.re
我必须比较两个数据源以查看所有行中的相同记录是否相同。一个数据源来自 Excel 文件,另一个来自 SQL 表。我尝试使用 DataFrame.equals() 就像我过去一样。 然而,这个问题是由于
我们正在使用 pandas read_sql用于检索前端触发的查询结果。为了简化用例,假设用户给出一些参数(表名、子句等),然后我们将其转换为 sql,然后使用 read_sql 执行它。pandas
我有一个数据库接口(interface)类,它从 pandas pd.read_sql 函数返回查询。我想将 pd.read_sql 参数传递给该方法,以便在调用函数时可以使用它,如下所示: impo
我有一个字段月年,格式为 datetime64[ns] 。 如何在 where 子句中使用此字段来获取滚动 12 个月的数据(过去 12 个月的数据)。 以下查询不起作用,但我想要过滤 12 个月数据
我正在遍历 pd.read_sql(query, engine, chunksize=10000) 的结果 我正在使用 engine (sqlalchemy) 设置为 echo=True以便它打印出
我可以访问 MS SQL SERVER 数据库,从中检索数据进行分析。我使用 Mac,因此可以使用 Navicat Essentials for SQL Server 访问数据库。这真的很好用。但是,
我正在尝试使用以下代码通过 python 从 sql 检索数据: query = ("SELECT stuff FROM TABLE WHERE name like %%(this_name)s%")
我试图在两个不同表的比较列之后插入一个标志(匹配/不匹配)。我能够比较两个 mysql 表列但不知道如何插入标志列并获取状态(匹配/不匹配) 下面是一个例子,考虑2个mysql表: 选项卡1: ema
我正在尝试将三个不同 MySQL 表中的几列读取到三个不同的数据帧中。 从数据库中读取并不需要很长时间,但实际上将它们放入数据帧中却相当慢。 start_time = time.time() prin
我有一个数据集 (14gb),我正在尝试使用 chunksize 从 MySQL 中提取数据。但是,我继续收到以下错误: TypeError: read_sql_query() got an unex
我正在使用 pyodbc 和 pandas read_sql 从 Oracle 数据库中提取数据。 当我输入这一行时我没有看到任何错误 df = pd.read_sql(sql_str,cnxn,ch
这是错误还是我做错了什么?我创建了一个 df,将它放在一个 sql 表中,df 和表中有一个带点的列。现在当我从 sql 表中读取 df 时,列名不一样。我写了这段代码是为了让人们可以测试它。 imp
import pandas as pd q = """ select * from tbl where metric = %(my_metric)s ;
我使用 pandas 从 Vertica 数据库读取数据: pd.read_sql(query, self._conn) 但是失败了 UnicodeDecodeError:“utf-8”编解码器无法解
我需要进一步处理 MySQL 查询的结果集作为数据框。 SQL 表包含大约 200 万行和 12 列(数据大小 = 180 MiB)。我正在运行 8 GB 内存的 OS X 10.9。 pandas.
我有一个用户定义的函数,它使用 pymysql 连接到 mysql 数据库,然后查询数据库并将结果读入 Pandas 数据帧。 import pandas as pd import pymysql i
有没有关于如何在 Pandas 中通过 SQL 查询传递参数的示例? 特别是我使用 SQLAlchemy 引擎连接到 PostgreSQL 数据库。到目前为止,我发现以下工作: df = psql.r
我将 MySQL 与 pandas 和 sqlalchemy 结合使用。但是,它非常慢。一个简单的查询,因为这个查询需要超过 11 分钟才能在具有 1100 万行的表上完成。什么行动可以改善这种表现?
我是一名优秀的程序员,十分优秀!