2016-08-19 3 views
0

SQL에서 테이블의 일부 데이터에 대한 회귀를 수행하고 정리 된 데이터의 일부 매개 변수를 새 SQL 테이블로 다시 내보내는 Python 코드를 작성하려고합니다. 내 코드 :DataFrame 값을 SQL 테이블에 내보낼 수 없습니다.

import pandas as pd 
import numpy as np 
import pandas.io.sql as psql 
import pypyodbc 
from pandas.stats.api import ols 
import statsmodels.api as sm 
#from statsmodels.formula.api import ols 


conn = pypyodbc.connect("DRIVER={SQL Server};SERVER=Server Add;DATABASE=Database;UID=UID;PWD=PWD") 
Data1 = pd.read_sql('SELECT net_rate, cohort FROM an.dbo.SL_Stop', conn) 

print Data1 

dummies = pd.get_dummies(Data1['cohort'],prefix ='Cohort') #Creating Dummies 
Data_With_Dummies = Data1[['net_rate']].join(dummies) #Merging Dummies 

.......... # 데이터 청소 작업은 .......... 는 다음 나는 청소 데이터

mod = sm.OLS(endog, exog) 
results = mod.fit() 
print results.summary() 
print "\n" 
print ('Paramters:', results.params) 

Data_Params=pd.DataFrame(results.params, columns =['values']) 
Data_Params = Data_Params.T 

Data_Params = Data_Params.rename(columns={'const':'const_Coef', 
              'Cohort_2' : 'Cohort_2_Coef', 
              'Cohort_3':'Cohort_3_Coef'}) 

Data_Pvalues = pd.DataFrame(results.pvalues, columns = ['values']) 

Data_Pvalues= Data_Pvalues.T 
Data_Pvalues = Data_Pvalues.rename(columns={'const':'const_Pvalue', 
              'Cohort_2' : 'Cohort_2_Pvalue', 
              'Cohort_3':'Cohort_3_Pvalue'}) 

Data_Concatenate_Coeff_Pvalues = pd.concat([Data_Params,Data_Pvalues],axis = 1) 

pd.DataFrame(Data_Concatenate_Coeff_Pvalues,index = ["Coeefi","Pvalue"]) 


const_Coef = Data_Params['const_Coef'] 
Cohort_2_Coef = Data_Params['Cohort_2_Coef'] 
Cohort_3_Coef = Data_Params['Cohort_3_Coef'] 

const_Pvalue = Data_Pvalues['const_Pvalue'] 
Cohort_2_Pvalue = Data_Pvalues['Cohort_2_Pvalue'] 
Cohort_3_Pvalue = Data_Pvalues['Cohort_3_Pvalue'] 


SQL_INSERT_QUERY = """ 
    INSERT INTO _nrr_cohorts (
     [report_month], 
     [beta_cohort_1], 
     [p_value_cohort_1], 
     [beta_cohort_2], 
     [p_value_cohort_2], 
     [beta_cohort_3], 
     [p_value_cohort_3], 
     [updated_datetime] 
    ) 
    VALUES (
     1,Data_Params['const_Coef'],Data_Params['Cohort_2_Coef'],Data_Params['Cohort_3_Coef'], 
     Data_Pvalues['const_Pvalue'],Data_Pvalues['Cohort_2_Pvalue'],Data_Pvalues['Cohort_3_Pvalue',3 
      ) 
     """ 
db = conn.cursor() 
db.execute(SQL_INSERT_QUERY).commit() 

에 회귀 분석을 수행 I 다시 새로운 SQL 테이블로 회귀 파라미터를 내보낼하지만 코드로 삽입 DataFrame 또는 새로운 SQL 테이블

+0

pandas.to_sql을 보셨습니까? http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_sql.html – Sam

답변

0
const_Coef = Data_Params.iat[0,0] 

Cohort_2_Coef = Data_Params.iat[0,1] 
Cohort_3_Coef = Data_Params.iat[0,2] 

const_Pvalue = Data_Pvalues.iat[0,0] 
Cohort_2_Pvalue = Data_Pvalues.iat[0,1] 
Cohort_3_Pvalue = Data_Pvalues.iat[0,2] 


Current_Date_Time = datetime.datetime.now() #Extracting Current Time 
db = conn.cursor() 

db.execute("INSERT INTO _nrr_cohorts(beta_cohort_1,beta_cohort_2,beta_cohort_3,p_value_cohort_1,p_value_cohort_2,p_value_cohort_3,updated_datetime,report_month)values(?,?,?,?,?,?,?,?)",(const_Coef,Cohort_2_Coef,Cohort_3_Coef,const_Pvalue,Cohort_2_Pvalue,Cohort_3_Pvalue,Current_Date_Time,Report_Month)).commit() 

DataFrame 각 셀로부터 값을 추출하기에이 있었던 파라미터를 전달할 수있다 방법 하드 코딩 된 값을 취 그 lped. 및 사용 ?? 변수를 전달하려면

관련 문제