Подключение к базе данных ibis pandas
Как мы можем работать с фреймами данных ibis и pandas?
conn = ibis.pandas.connect({'data': dataframe})
projection = conn.table('data')
Выдает ошибку:
module 'ibis' has no attribute 'pandas'
Мы ценим любые предложения
2 ответа
ibis
- это инструмент для подключения вашего Python к удаленным базам данных.
результат будет сохранен в пандах
поэтому вам нужно использовать, как показано ниже
conn = ibis.sqlite.connect('data': 'data.db')
data = conn.table('table')
Чтобы узнать больше об ibis, перейдите по этой ссылке:https://ibis-project.org/docs/tutorial/01-Introduction-to-Ibis.html#Getting-started
Проблема в том, что вам не хватает зависимостей, возможно, самой панды. Пытаться
import pandas
чтобы увидеть.
Ibis может подключаться к нескольким серверным ВМ. А пока способ указать, какой движок использовать,
con = ibis.<engine>.connect(...)
. Итак, в вашем случае вы правильно определяете, что хотите подключиться с помощью движка pandas. Проблема в том, что Ibis поддерживает около 15 бэкендов, и нам не нужны зависимости всех их. Итак, когда вы это сделаете
import ibis
, мы пытаемся загрузить все бэкенды как
ibis.sqlite
,
ibis.pandas
,
ibis.postgres
... А если зависимости отсутствуют, мы просто молча прекращаем загрузку бэкэнда.
Это не очень хорошо, поскольку ошибка, которую вы получаете, не очень помогает, как вы уже обнаружили. В будущем мы планируем изменить синтаксис на
ibis.connect('sqlite://my_database.db')
. Как только мы это сделаем, мы сможем вызвать исключение с отсутствующими зависимостями, если что-то не так (вместо бесполезных
AttributeError
).
Мы должны выпустить Ibis 2.0 через несколько недель. А пока бегу
import ibis.backends.pandas
или же
import ibis.pandas
(в зависимости от версии, которую вы используете) должны дать вам более информативную ошибку в том, в чем проблема.