Grazie a un suggerimento di @AndyHayden, questa risposta
era il trucco. Sostituendo sostanzialmente mysqlconnector con mysqldb era il fulcro.
engine = create_engine('mysql+mysqldb://[user]:[pass]@[host]:[port]/[schema]', echo = False)
df.to_sql(name = 'my_table', con = engine, if_exists = 'append', index = False)
Dove [schema] è il nome del database e, nel mio caso particolare, :[port] viene omesso con [host] essendo localhost .