2016-10-03 28 views
6

SQL veritabanını sorguluyor ve verileri işlemek için panda kullanmak istiyorum. Ancak, verileri nasıl taşıyacağımı bilmiyorum. Aşağıda benim giriş ve çıkışım var.Veriyi pyodbc'den pandalara taşıma

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

. Lütfen cevaba bakınız. – polonius11

cevap

13

Sadece bunu anladım Daha kısa ve daha özlü cevap

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

Ben yol üzerinde bu bir düşünüyordum!

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

Başka bir daha hızlı yöntem. bakınız data = 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)