반응형
데이터 분석을 하다보면 당연히 다양한 데이터 소스에 접근하게됩니다. 파일, 엑셀, 그리고 데이터베이스 까지... 이번에는 JDBC 로 데이터를 가져온 후 하여 pandas의 Dataframe로 변경해보았습니다.
import os
import sys
import jpype
import jaydebeapi as jp
import pandas.io.sql as pd_sql
from pandas import DataFrame
# JAVA_HOME이 설정되어 있지 않을 경우
if("JAVA_HOME" not in os.environ):
os.environ["JAVA_HOME"] = "[JAVA_HOME path]"
# oracle jdbc 파일 경로 및 class 경로 설정
JDBC_Driver = '[jdbc Driver path]/ojdbc6.jar'
jar = r'[jdbc Driver path]/ojdbc6.jar'
args = '-Djava.class.path=%s' % jar
# 환경 변수 출력
print('Python Version : ', sys.version)
print('JAVA_HOME : ', os.environ["JAVA_HOME"])
print('JDBC_Driver Path : ', JDBC_Driver)
print('Jpype Default JVM Path : ', jpype.getDefaultJVMPath())
# java class path 설정
jpype.startJVM(jpype.getDefaultJVMPath(), args)
# oracle 접근
conn = jp.connect('oracle.jdbc.driver.OracleDriver','jdbc:oracle:thin:[user]/[password]@[oracle ip]:[oracle poart]/[sid]', JDBC_Driver)
cur = conn.cursor()
# Select Query 실행
sql = "SELECT * FROM TEST"
pd_sql.execute(sql, conn)
df = pd_sql.read_sql(sql, conn, index_col = None)
print df.head()
실행 결과
('Python Version : ', '2.7.10 (default, May 23 2015, 09:44:00) [MSC v.1500 64 bit (AMD64)]')
('JAVA_HOME : ', 'D:/Program Files/Java/jre1.8.0_45')
('JDBC_Driver Path : ', 'E:/9. Util/90.DB Driver/ojdbc6.jar')
('Jpype Default JVM Path : ', 'D:\\Program Files\\Java\\jre1.8.0_45\\bin\\server\\jvm.dll')
PID USER_ID USER_PWD SEX
0 1 test1 test1 M
1 2 test2 test1 M
2 3 test3 test1 M
3 4 test4 test1 F
4 5 test5 test1 F
'Data Analysis > Python' 카테고리의 다른 글
[Python] 다중 회귀 분석(Multiple Linear Regression) (0) | 2019.05.19 |
---|---|
Python : Data Handling(수정) (0) | 2015.12.10 |
Python : 다중 회귀 분석 (0) | 2015.12.02 |
Python : Numpy Intall 하기 (0) | 2015.11.02 |
Spotfire & Python : 특정일자를 Input Field에 설정하기 (0) | 2015.08.30 |
댓글