#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, я выполнил следующие шаги, и это сработало для меня. может быть, вы можете попробовать эти шаги.
-
Сгенерируйте ключ api Json из вашего профиля kaggle, т.е. (Учетная запись-> Сгенерировать ключ Api)
-
Загрузите тот же файл Json в папку «/ root /.kaggle /»
-
Загрузите набор данных, используя ключ api, например.
!kaggle datasets download -d snap/amazon-fine-food-reviews !unzip archive
-
con = sqlite3.connect('/content/database.sqlite') filtered_data = pd.read_sql_query(""" SELECT * FROM Reviews WHERE Score != 3 LIMIT 5000""", con)