IMO znacznie wydajniej byłoby używać pand do odczytywania danych z serwera MySQL:
from sqlalchemy import create_engine
import pandas as pd
db_connection_str = 'mysql+pymysql://mysql_user:[email protected]_host/mysql_db'
db_connection = create_engine(db_connection_str)
df = pd.read_sql('SELECT * FROM table_name', con=db_connection)
powinno to również zająć się nazwami kolumn...