Обновление: эта функциональность была объединена в pandas master и будет выпущена в 0.15 (возможно, в конце сентября), благодаря @artemyk! См. https://github.com/pydata/pandas/pull/8062
Итак, начиная с 0,15, вы можете указать аргумент chunksize
и, например, просто выполните:
df.to_sql('table', engine, chunksize=20000)