Сбой выполнения в sql ‘ ВЫБЕРИТЕ * ИЗ обзоров, ГДЕ оценка! = 3 ЛИМИТА 5000’: нет такой таблицы: Обзоры

#python-3.x #pandas #machine-learning #jupyter-notebook #data-science

#python-3.x #панды #машинное обучение #jupyter-ноутбук #наука о данных

Вопрос:

Мне нужна помощь в решении приведенной ниже проблемы, с которой я столкнулся:

Я пытаюсь подключиться к sqllite и пытаюсь прочитать данные, используя запрос read sql от pandas, и я застрял с ошибкой.

Сбой выполнения в sql ‘ ВЫБЕРИТЕ * ИЗ обзоров, ГДЕ оценка! = 3 ЛИМИТА 5000’: нет такой таблицы: Обзоры

Ниже приведен фрагмент кода для доступа к sqllite и подключению:

  con = sqlite3.connect('database.sqlite') 
print(con)
import os
os.getcwd()
os.listdir()
  

вывод приведенного выше кода: вы увидите файл reviews.csv в каталоге.

  <sqlite3.Connection object at 0x00000240C2C6C570>
['.ipynb_checkpoints',
 '03 Amazon Fine Food Reviews Analysis_KNN.ipynb',
 'Assignment_SAMPLE_SOLUTION.ipynb',
 'database.sqlite',
 'K NN Implementation with Sample Data for regression and classification.ipynb',
 'Reviews.csv']
  

Теперь, когда файл находится в каталоге, я использую это :

 import sqlite3
import pandas as pd
import numpy as np

con = sqlite3.connect('database.sqlite') 
filtered_data = pd.read_sql_query(""" SELECT * FROM Reviews WHERE Score != 3 LIMIT 5000""", con) 
  

приведенный выше фрагмент кода выдает ошибку:

Сбой выполнения в sql ‘ ВЫБЕРИТЕ * ИЗ обзоров, ГДЕ оценка! = 3 ЛИМИТА 5000’: нет такой таблицы: Обзоры

не могли бы вы, пожалуйста, кто-нибудь сообщить мне, где я ошибаюсь.

Комментарии:

1. Похоже Reviews , в вашей базе данных нет таблицы по имени.

2. @MayankPorwal: Как мне это решить? Я только сейчас понял, как это сделать. Если вы видите, что в текущем рабочем каталоге есть файл reviews.csv. Итак, почему read_sql_query не может его прочитать?

Ответ №1:

Полученное вами сообщение об ошибке является явным: Reviews в вашей базе данных нет таблицы 'database.sqlite' . Упомянутый .csv вами файл — это просто csv-файл, и вы можете запускать sql-запросы только к базам данных по определению.

Чтобы узнать, какие таблицы доступны в базе данных, перейдите в свою командную строку sqllite, введя что-то вроде sqlite3 database.sqlite и используя команду .tables . Это даст вам список таблиц в этой базе данных.

если вы хотите узнать больше о sqlite, вы можете использовать sqlitetutorial.net например.

Комментарии:

1. Хороший ответ. Предложил бы упомянуть read_csv() тоже.

Ответ №2:

укажите фактическое местоположение набора данных sql и, тем не менее, если это не сработает, укажите r’location’.

Комментарии:

1. Пожалуйста, подождите, пока у вас не будет необходимой репутации, чтобы прокомментировать сообщение, а не публиковать комментарий, замаскированный под ответ

Ответ №3:

Поскольку Bluexm сказал, что нет доступной таблицы под названием review .

Я использовал colab, я выполнил следующие шаги, и это сработало для меня. может быть, вы можете попробовать эти шаги.

  1. Сгенерируйте ключ api Json из вашего профиля kaggle, т.е. (Учетная запись-> Сгенерировать ключ Api)

  2. Загрузите тот же файл Json в папку «/ root /.kaggle /»

  3. Загрузите набор данных, используя ключ api, например.

      !kaggle datasets download -d snap/amazon-fine-food-reviews
     !unzip archive
      
  4.    con = sqlite3.connect('/content/database.sqlite') 
      filtered_data = pd.read_sql_query(""" SELECT * FROM Reviews WHERE Score != 3 LIMIT 5000""", con)