python - 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(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`;"""
或者
query = """SELECT [Work Item Id], [Parent Work Item Id], MAX([Remaining Work])
FROM TASKS
GROUP BY [Work Item Id], [Parent Work Item Id];"""
取决于 PandaSQL 期望的风格。
推荐阅读
- javascript - HTML(或 jQuery):选择一个或两个复选框(或单选按钮)
- html - 发布项目后 CSS 不加载
- java - 使用 java.time.temporal.ChronoUnit 时出现 DateTimeParseException
- react-native - React Native 中单个屏幕的多个导航屏幕
- google-cloud-firestore - Firestore 安全规则正则表达式
- python - 没有名为安装工具的模块,但我已经安装了它。
- google-apps-script - 对象比较总是返回默认选择案例
- c# - 如何在 UWP 应用中将客户端证书用于 HTTPs 请求
- android - ImageView自定义高度基于TextView高度
- rest - REST API - 命名约定 - 返回对象集合,但仅返回这些项目的单个属性