Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 基于条件的posgres表过滤_Python_Sql_Pandas_Postgresql_Pgadmin - Fatal编程技术网

Python 基于条件的posgres表过滤

Python 基于条件的posgres表过滤,python,sql,pandas,postgresql,pgadmin,Python,Sql,Pandas,Postgresql,Pgadmin,我已经通过Jupyter连接到一个postgres表,并试图通过psycopg2连接对其进行过滤 pd.read_sql_query('''SELECT * FROM public."TABLE_NAME" LIMIT 5''', cnx) 返回表的前5行,但是,我想根据条件进行筛选 条件只是一个整数 pd.read_sql_query('''SELECT * FROM public."TABLE_NAME" WHERE TABLE_NAME

我已经通过Jupyter连接到一个postgres表,并试图通过psycopg2连接对其进行过滤

pd.read_sql_query('''SELECT * 
FROM public."TABLE_NAME"

LIMIT 5''', cnx)
返回表的前5行,但是,我想根据条件进行筛选


条件只是一个整数

pd.read_sql_query('''SELECT * 

FROM public."TABLE_NAME" 

WHERE TABLE_NAME.COLUMN = 851

LIMIT 5''', cnx)
抛出一个错误“undefined column”,并表明我指的是TABLE_NAME.column,这正是我所尝试的

如果您能了解如何解决此问题,我们将不胜感激。

请尝试以下方法:

pd.read_sql_query(f'''SELECT * 
FROM public.TABLE_NAME 
WHERE public.TABLE_NAME.COLUMN = {condition}
LIMIT 5''', cnx)

您需要这样写-(这里cnx将是column的值。)


错误似乎很明显,您的表中不存在该列?另外,您已经在调用前添加了schema
public
,但没有添加where子句,如果您首先尝试从public中别名
。[Table Name]t;其中,t.Column=…
列确实存在,即使在我进行初始查询并添加.columns时,它也会出现。这不是列的问题,也不是SQL的问题。在python中,替换
条件
是一个问题。条件只是一个整数。请参见更新后的问题。您真的有一个名为
column
的列吗?你有没有试过给表格加上别名
pd.read\u sql\u查询(''SELECT*FROM public.'TABLE\u NAME“t WHERE t.COLUMN=851 LIMIT 5',cnx)
这产生了一个不同的错误,TABLE的子句条目中缺少了我编辑过的更新答案,使用字符串格式与
public.TABLE\u NAME.COLUMN={condition}
,@CarterB这可能有效谢谢您的帮助。还是一样的错误。作为参考,条件只是一个整数。您能解释一下这与我尝试过的有什么不同吗?我希望您能看到
=%s
。基本上,此%s将由您在cnx中传递的值替换,但cnx是我的连接。用条件(整数)替换它会抛出“int”对象没有属性“cursor”,我看到更新的问题了。您真的有一个名为column的列吗?你有没有试过给表格加上别名?pd.read_sql_查询('''SELECT*FROM public.''TABLE_NAME“t其中t.COLUMN=851 LIMIT 5'',cnx)
pd.read_sql_query('''SELECT * 
FROM public."TABLE_NAME" 
WHERE TABLE_NAME.COLUMN = %s
LIMIT 5''', cnx)