Read data from pyodbc to pandas Read data from pyodbc to pandas python python

Read data from pyodbc to pandas


A shorter and more concise answer

import pyodbcimport pandas as pdcnxn = 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 = pd.read_sql(sql,cnxn)  # without parameters [non-prepared statement]# with a prepared statement, use list/tuple/dictionary of parameters depending on DB#data = pd.read_sql(sql=sql, con=cnxn, params=query_params) 


I was way over thinking this one!

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)


Another, faster method. Please see data = pd.read_sql(sql, cnxn)

import pyodbcimport pandas as pdfrom pandas import DataFramefrom pandas.tools import plottingfrom scipy import statsimport matplotlib.pyplot as pltimport seaborn as snscnxn = 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)