Я использую драйвер Passon cassandra для подключения и запроса нашего кластера Cassandra.Pandas and Cassandra: несовместимость формата массива numpy
Я хочу, чтобы манипулировать мои данные через панда, есть область, в документации для водителя Кассандре, что говорит об этом именно: https://datastax.github.io/python-driver/api/cassandra/protocol.html
NumpyProtocolHander: deserializes results directly into NumPy arrays. This facilitates efficient integration with analysis toolkits such as Pandas.
Следуя инструкции выше и делать запрос на выборку в Кассандре, Я могу увидеть выход (через функцию типа()) в виде:
<class 'cassandra.cluster.ResultSet'>
переборе результатов, это то, что печать строки появляется как:
{u'reversals_rejected': array([0, 0]), u'revenue': array([ 0, 10]), u'reversals_revenue': array([0, 0]), u'rejected': array([3, 1]), u'impressions_positive': array([3, 3]), u'site_user_id': array([226226, 354608], dtype=int32), u'error': array([0, 0]), u'impressions_negative': array([0, 0]), u'accepted': array([0, 2])}
(Я ограничил результаты запроса, я работаю с гораздо большими объемами данных - следовательно, вы хотите использовать numpy и pandas).
Мои знания панды ограничен, я попытался запустить очень основные функциональные возможности:
rslt = cassandraSession.execute("SELECT accepted FROM table")
test = rslt[["accepted"]].head(1)
Это выводит следующее сообщение об ошибке:
Traceback (most recent call last):
File "/UserStats.py", line 27, in <module>
test = rslt[["accepted"]].head(1)
File "cassandra/cluster.py", line 3380, in cassandra.cluster.ResultSet.__getitem__ (cassandra/cluster.c:63998)
TypeError: list indices must be integers, not list
Я понимаю ошибку, я просто не знаю, как «перейти» от этой предполагаемой матрицы numpy к возможности использования Pandas.
Благодарим за помощь! Указание индекса для DataFrame было тем, чего мне не хватало в конце! – joao
Что входит в '.bind ([...]) скобки? – yeliabsalohcin
@yeliabsalohcin Это переменные, которые вы хотите отправить в запрос. Поэтому, если в вашем подготовленном заявлении был такой запрос: «SELECT * FROM users WHERE user_id =? AND date =?» они заменили бы «?». – Tickon