我正在使用Python(Jupyter Notebook)和Postgres数据库,正在努力填充Pandas数据框。
使用pgAdmin4中的查询构建器,SQL代码可以正常运行
SELECT "Date","Close" FROM test WHERE "Symbol" = 'AA'
但是,我无法在Jupyter笔记本中使用此功能,我认为这与单引号和双引号有关,但无法弄清楚要更改的内容并碰壁了。在笔记本电脑上我正在尝试
df = pd.read_sql_query('SELECT "Date","Close" FROM public.test WHERE "Symbol" = AA', conn)
但是不知道在查询的AA(数据)部分使用什么引号,如果我使用双引号,pandas认为AA是一列,如果我使用单引号,它会破坏字符串。
如果有人能指出我正确的方向,我将非常感激。
谢谢
答案 0 :(得分:2)
这将起作用:
df = pd.read_sql_query("SELECT Date,Close FROM public.test WHERE Symbol = 'AA'", conn)
Sql字符必须具有单引号,但列名根本不需要引号。
如果确实在sql查询中需要双引号,那么只需确保在python字符串上使用三重外引号即可,
df = pd.read_sql_query("""SELECT "Date" FROM public.test WHERE Symbol = 'AA'""", conn)
答案 1 :(得分:1)
如果查询很大,可以使用三引号,可以在多行中声明它:
df = pd.read_sql_query("""SELECT "Date","Close"
FROM public.test
WHERE Symbol = 'AA'""", conn)
@Marjan Moderc的解决方案当然也可以。