Python pandasql中的查询出错

Python pandasql中的查询出错,python,python-3.x,pandas,pandasql,Python,Python 3.x,Pandas,Pandasql,我对PandaSQL非常陌生,以前从未使用过它。以下是我到目前为止的代码: import pandas as pd from pandasql import sqldf import numpy as np tasks = pd.read_csv("C:/Users/RMahesh/Documents/TASKS_Final_2.csv", encoding='cp1252') query = """SELECT Work Item Id, Parent Work Item Id, MAX(R

我对PandaSQL非常陌生,以前从未使用过它。以下是我到目前为止的代码:

import pandas as pd
from pandasql import sqldf
import numpy as np

tasks = pd.read_csv("C:/Users/RMahesh/Documents/TASKS_Final_2.csv", encoding='cp1252')
query = """SELECT Work Item Id, Parent Work Item Id, MAX(Remaining Work) 
FROM TASKS 
GROUP BY Work Item Id, Parent Work Item Id;"""

df = sqldf(query, locals()))
print(df.head(5))
我得到这个错误:

'pandasql.sqldf.PandaSQLException: (sqlite3.OperationalError) near "Id": syntax error [SQL: 'SELECT Work Item Id, Parent Work Item Id, MAX(Remaining Work) \n'
任何帮助都会很好

编辑:在实现了下面其他用户的一些建议后,以下是我的工作代码:

import pandas as pd
from pandasql import sqldf
import numpy as np
tasks = pd.read_csv("C:/Users/RMahesh/Documents/TASKS_Final_2.csv", encoding='cp1252',  low_memory=False)

query = """SELECT [Work Item Id], [Parent Work Item Id], MAX([Remaining Work]) 
FROM tasks 
GROUP BY [Work Item Id], [Parent Work Item Id];"""

print(sqldf(query, locals()))

如果列名中包含空格,则必须引用它们才能使SQL有效:

query = """SELECT `Work Item Id`, `Parent Work Item Id`, MAX(`Remaining Work`) 
FROM TASKS 
GROUP BY `Work Item Id`, `Parent Work Item Id`;"""


取决于flavor PandaSQL的期望值。

如果列名中包含空格,则必须引用它们才能使SQL有效:

query = """SELECT `Work Item Id`, `Parent Work Item Id`, MAX(`Remaining Work`) 
FROM TASKS 
GROUP BY `Work Item Id`, `Parent Work Item Id`;"""


取决于flavor PandaSQL的期望。

问题似乎是select语句,GROUP BY语句可能也会出现问题。我会先用
从任务中选择*
进行测试。我猜列名需要遵循snake格式:work\u item_id@Chris谢谢你回来。正如下面提到的另一个用户所做的那样,由于某种原因,我遇到了另一个错误。问题似乎是您的select语句,您可能也会在GROUP BY语句中遇到问题。我会先用
从任务中选择*
进行测试。我猜列名需要遵循snake格式:work\u item_id@Chris谢谢你回来。正如下面提到的另一个用户所做的那样,由于某种原因,我得到了另一个错误。这似乎起到了作用。但我仍然收到这条消息,不确定该怎么办:sys:1:DtypeWarning:Columns(32)的类型混合。在导入时指定dtype选项或设置low_memory=False。@rmahesh检查此帖子:@rmahesh-这与SQL本身无关,这意味着CSV文件的某些列中有混合数据类型,您必须告诉熊猫如何转换这些列。阅读了解更多信息。@zwer我已经用当前代码进行了编辑。我仍然收到许多不同的错误。@rmahesh-如果没有您的数据样本和这些错误的回溯,我们将无法确定它们发生的原因。他们当然与这个问题无关,我相信,我的回答已经解决了这个问题,所以创建一个新的问题来处理您可能遇到的进一步问题。这似乎是有效的。但我仍然收到这条消息,不确定该怎么办:sys:1:DtypeWarning:Columns(32)的类型混合。在导入时指定dtype选项或设置low_memory=False。@rmahesh检查此帖子:@rmahesh-这与SQL本身无关,这意味着CSV文件的某些列中有混合数据类型,您必须告诉熊猫如何转换这些列。阅读了解更多信息。@zwer我已经用当前代码进行了编辑。我仍然收到许多不同的错误。@rmahesh-如果没有您的数据样本和这些错误的回溯,我们将无法确定它们发生的原因。这些问题当然与这个问题无关,我相信,我的上述回答已经解决了这个问题,因此,创建一个新问题来处理您可能遇到的进一步问题。