Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.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 对数据帧执行SQL命令时出错_Python_Pandas_Sqlite_Pandasql - Fatal编程技术网

Python 对数据帧执行SQL命令时出错

Python 对数据帧执行SQL命令时出错,python,pandas,sqlite,pandasql,Python,Pandas,Sqlite,Pandasql,我正在学习Udacity数据科学课程,我的解决方案正是他们提供的 import pandas import pandasql def select_first_50(filename): # Read in our aadhaar_data csv to a pandas dataframe. Afterwards, we rename the columns # by replacing spaces with underscores and setting all cha

我正在学习Udacity数据科学课程,我的解决方案正是他们提供的

import pandas
import pandasql

def select_first_50(filename):
    # Read in our aadhaar_data csv to a pandas dataframe.  Afterwards, we rename the columns
    # by replacing spaces with underscores and setting all characters to lowercase, so the
    # column names more closely resemble columns names one might find in a table.
    aadhaar_data = pandas.read_csv(filename)
    aadhaar_data.rename(columns = lambda x: x.replace(' ', '_').lower(), inplace=True)

    # Select out the first 50 values for "registrar" and "enrolment_agency"
    # in the aadhaar_data table using SQL syntax. 
    #
    # Note that "enrolment_agency" is spelled with one l. Also, the order
    # of the select does matter. Make sure you select registrar then enrolment agency
    # in your query.
    #
    # You can download a copy of the aadhaar data that we are passing 
    # into this exercise below:
    # https://s3.amazonaws.com/content.udacity-data.com/courses/ud359/aadhaar_data.csv
    q = """
    SELECT registrar, enrolment_agency FROM aadhar_data LIMIT 50;
    """

    #Execute your SQL command against the pandas frame
    aadhaar_solution = pandasql.sqldf(q.lower(), locals())
    return aadhaar_solution 

print select_first_50("/home/trina/Documents/Udacity_datascience/aadhaar_data.csv")
但是,它会返回以下错误:

File "pandas_sql.py", line 29, in <module>
    print select_first_50("/home/trina/Documents/Udacity_datascience/aadhaar_data.csv")
  File "pandas_sql.py", line 26, in select_first_50
    aadhaar_solution = pandasql.sqldf(q.lower(), locals())
  File "/home/trina/anaconda2/lib/python2.7/site-packages/pandasql/sqldf.py", line 156, in sqldf
    return PandaSQL(db_uri)(query, env)
  File "/home/trina/anaconda2/lib/python2.7/site-packages/pandasql/sqldf.py", line 63, in __call__
    raise PandaSQLException(ex)
pandasql.sqldf.PandaSQLException: (sqlite3.OperationalError) no such table: aadhar_data [SQL: '\n\tselect registrar, enrolment_agency from aadhar_data limit 50;\n\t']
文件“pandas_sql.py”,第29行,在
打印选择“首先”50(“/home/trina/Documents/Udacity\u datascience/aadhaar\u data.csv”)
文件“pandas\u sql.py”,第26行,在select\u first\u 50中
aadhaar_solution=pandasql.sqldf(q.lower(),locals())
sqldf中的第156行文件“/home/trina/anaconda2/lib/python2.7/site packages/pandasql/sqldf.py”
返回PandaSQL(db_uri)(查询,环境)
文件“/home/trina/anaconda2/lib/python2.7/site packages/pandasql/sqldf.py”,第63行,在调用__
引发PandaSQLException(ex)
pandasql.sqldf.PandaSQLException:(sqlite3.OperationalError)没有这样的表:aadhar_数据[SQL:'\n\t从aadhar_数据限制50中选择注册机构、注册机构;\n\t']
你能帮我找出我的代码出了什么问题吗?
提前谢谢

看起来就像输入错误:在SQL查询中,尝试使用
aadhar\u数据
作为表名,而不是
aadhar\u数据

q = """
SELECT registrar, enrolment_agency FROM aadhaar_data LIMIT 50;
"""