["python","pandas","pyodbc"]
Read data from pyodbc to pandas

I am querying a SQL database and I want to use pandas to process the data. However, I am not sure how to move the data. Below is my input and output. 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')
A shorter and more concise answer import pyodbc import pandas as pd 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 = 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)