【发布时间】:2020-07-08 06:12:41
【问题描述】:
我正在尝试将 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)
但是,当我使用下面的代码时,它会打印出我要查找的数据。我需要把这些数据转换成熊猫数据框,
for row in c: print(row)
conn.close()
我对 python 很陌生,所以非常感谢任何帮助!
【问题讨论】:
-
.read_sql()有一个连接参数。 CX_Oracle - import data from Oracle to Pandas dataframe 显示它与cx_Oracle连接一起使用。 -
还有其他不同方法的答案,例如
pd.DataFrame(cursor.fetchall())- 搜索python pandas oracle sql的变体 -
这能回答你的问题吗? python-pandas and databases like mysql -
cx_Oracle有一个答案。 -
正如 wwii 所说 - 您可以将查询直接传递给
read_sql方法 - 即pd.read_sql("SELECT * ... ", con = conn) -
当我尝试这样做时,程序只是挂起..
标签: python sql pandas oracle performance