Hai sovrascritto from pandas.io import sql
con sql = """...
, quindi sql
ora è una stringa e non più un pandas
modulo che contiene il write_frame
funzione.
EDIT:l'oggetto AttributeError: 'numpy.int64' object has no attribute 'replace'
l'errore che ottieni è dovuto al fatto che usi etichette di colonne intere (questo è un bug). Prova a impostare le etichette delle colonne su qualcos'altro, ad esempio:
df.columns = ['COL1', 'COL2', 'COL3']