Как преобразовать SQL Oracle База данных в Pandas DataFrame? - PullRequest
1 голос
/ 27 марта 2020

Я пытаюсь преобразовать базу данных Oracle SQL в python, чтобы я мог агрегировать / анализировать данные. Pandas было бы действительно полезно для этой задачи. Но всякий раз, когда я пытаюсь использовать свой код, он просто зависает и ничего не выводит. Я не уверен, потому что я использую пакет cx oracle, а затем пакет pandas?

import cx_Oracle as cxo
import pandas as pd 
dsn=cxo.makedsn(
    'host.net',
    '1111',
    service_name='servicename'
)
conn=cxo.connect(
    user='Username',
    password='password',
    dsn=dsn)
c=conn.cursor()
a=c.execute("SELECT * FROM data WHERE date like '%20%'")
conn.close
df=pd.DataFrame(a)
head(df)

Однако, когда я использую код ниже, он распечатывает данные, которые я ищу. Мне нужно преобразовать эти данные в фрейм panda,

for row in c: print(row)
conn.close()

Я очень новичок в python, поэтому любая помощь будет очень признательна !!

1 Ответ

0 голосов
/ 27 марта 2020

Чтобы преобразовать курсор cx_ Oracle в кадр данных, вы можете использовать следующий код:

with conn.cursor() as cursor:
    cursor.execute("SELECT * FROM data WHERE date like '%20%'")
    from pandas import DataFrame
    df = DataFrame(cursor.fetchall())
    df.columns = [x[0] for x in cursor.description]
    print("I got %d lines " % len(df))

Примечание. Я использую курсор в качестве диспетчера контекста. Таким образом, он будет автоматически закрыт в конце блока.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...