Python Pandas - Utilisation de to_sql pour écrire de grandes trames de données dans des morceaux

Je suis en utilisant des Pandas to_sql fonction pour écrire à MySQL, qui est le moment de sortir à cause de la grande taille de l'image (1M de lignes, 20 colonnes).

http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_sql.html

Est-il plus officiel pour morceau à travers les données et écrire les lignes dans les blocs? J'ai écrit mon propre code, qui semble fonctionner. Je préfère une solution officielle. Merci!

def write_to_db(engine, frame, table_name, chunk_size):

    start_index = 0
    end_index = chunk_size if chunk_size < len(frame) else len(frame)

    frame = frame.where(pd.notnull(frame), None)
    if_exists_param = 'replace'

    while start_index != end_index:
        print "Writing rows %s through %s" % (start_index, end_index)
        frame.iloc[start_index:end_index, :].to_sql(con=engine, name=table_name, if_exists=if_exists_param)
        if_exists_param = 'append'

        start_index = min(start_index + chunk_size, len(frame))
        end_index = min(end_index + chunk_size, len(frame))

engine = sqlalchemy.create_engine('mysql://...') #database details omited
write_to_db(engine, frame, 'retail_pendingcustomers', 20000)

source d'informationauteur Krishan Gupta