2016-10-03 2 views
6

SQL 데이터베이스를 쿼리하고 있으며 팬더를 사용하여 데이터를 처리하려고합니다. 그러나 데이터를 이동하는 방법을 모르겠습니다. 아래는 제 입력과 출력입니다.pyodbc에서 pandas로 데이터 이동

import pyodbc 
import pandas 
from pandas import DataFrame 

cnxn = pyodbc.connect(r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:\users\bartogre\desktop\CorpRentalPivot1.accdb;UID="";PWD="";') 
crsr = cnxn.cursor() 
for table_name in crsr.tables(tableType='TABLE'): 
    print(table_name) 
cursor = cnxn.cursor() 
sql = "Select sum(CYTM), sum(PYTM), BRAND From data Group By BRAND" 
cursor.execute(sql) 
for data in cursor.fetchall(): 
    print (data) 

('C:\\users\\bartogre\\desktop\\CorpRentalPivot1.accdb', None, 'Data', 'TABLE', None) 
('C:\\users\\bartogre\\desktop\\CorpRentalPivot1.accdb', None, 'SFDB', 'TABLE', None) 
(Decimal('78071898.71'), Decimal('82192672.29'), 'A') 
(Decimal('12120663.79'), Decimal('13278814.52'), 'B') 
+0

. 답을 참조하십시오. – polonius11

답변

13

난 그냥 알아 냈 짧고 더 간결하게 대답

import pyodbc 
import pandas 
cnxn = pyodbc.connect(r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};' 
         r'DBQ=C:\users\bartogre\desktop\data.mdb;') 
sql = "Select sum(CYTM), sum(PYTM), BRAND From data Group By BRAND" 
data = pandas.read_sql(sql,cnxn) 
4

나는 방법을 통해이 일을 생각하고 있었다!

cnxn = pyodbc.connect(r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:\users\bartogre\desktop\CorpRentalPivot1.accdb;UID="";PWD="";') 
crsr = cnxn.cursor() 
for table_name in crsr.tables(tableType='TABLE'): 
    print(table_name) 
cursor = cnxn.cursor() 
sql = "Select sum(CYTM), sum(PYTM), BRAND From data Group By BRAND" 
cursor.execute(sql) 
data = cursor.fetchall() 
print(data) 
Data = pandas.DataFrame(data) 
print(Data) 
5

또 다른 빠른 방법입니다. 참조하십시오 데이터 =의 pd.read_sql (SQL, cnxn)

import pyodbc 
import pandas as pd 
from pandas import DataFrame 
from pandas.tools import plotting 
from scipy import stats 
import matplotlib.pyplot as plt 
import seaborn as sns 

cnxn = pyodbc.connect(r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)}; DBQ=C:\users\bartogre\desktop\data.mdb;UID="";PWD="";') 
crsr = cnxn.cursor() 
for table_name in crsr.tables(tableType='TABLE'): 
    print(table_name) 
cursor = cnxn.cursor() 
sql = "Select *" 
sql = sql + " From data" 
print(sql) 
cursor.execute(sql) 
data = pd.read_sql(sql, cnxn) 
관련 문제