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 테이블
pandas.to_sql을 보셨습니까? http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_sql.html – Sam