我正在尝试将 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)
但是,当我使用下面的代码时,它会打印出我要查找的数据。我需要将这些数据转换成 Pandas 数据框,
for row in c: print(row)
conn.close()
我是 python 的新手,所以非常感谢任何帮助!!
最佳答案
要将 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))
注意我使用游标作为上下文管理器。所以它会在 block 结束时自动关闭。
关于python - 如何将 SQL Oracle 数据库转换为 Pandas DataFrame?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60887128/