El método de pandas to_sql cambia el esquema de las tablas sqlite

Cuando escribo Pandas DataFrame en mi base de datos SQLite utilizando el método to_sql , cambia el .schema de mi tabla, incluso si uso if_exists='append' . Por ejemplo después de la ejecución

 with sqlite3.connect('my_db.sqlite') as cnx: df.to_sql('Resolved', cnx, if_exists='append') 

.schema original:

 CREATE TABLE `Resolved` ( `Name` TEXT NOT NULL COLLATE NOCASE, `Count` INTEGER NOT NULL, `Obs_Date` TEXT NOT NULL, `Bessel_year` REAL NOT NULL, `Filter` TEXT NOT NULL, `Comments` TEXT COLLATE NOCASE ); 

cambios a:

 CREATE TABLE Resolved ( [Name] TEXT, [Count] INTEGER, [Obs_Date] TEXT, [Bessel_year] REAL, [Filter] TEXT, [Comments] TEXT ); 

¿Cómo guardar el esquema original de mi mesa? Yo uso pandas 0.14.0, Python 2.7.5

A partir de 0.14 (lo que estás usando), las funciones de SQL se refaccionan para usar sqlalchemy para mejorar la funcionalidad. Vea lo que hay de nuevo y los documentos sobre esto.
La conexión sqlite3 sin procesar todavía se admite como alternativa (pero ese es el único sabor de sql que se admite sin sqlalchemy).

El uso de sqlalchemy debería resolver el problema. Para esto, simplemente puede crear un motor sqlalchemy en lugar de la conexión de sqlite directa cnx :

 engine = sqlalchemy.create_engine('sqlite:///my_db.sqlite') df.to_sql('Resolved', engine, if_exists='append') 

Pero presenté un problema para el caso con la opción de respaldo cnx de sqlite: https://github.com/pydata/pandas/issues/7355