sql >> Database >  >> RDS >> PostgreSQL

Schrijf snel panda's dataframe naar postgres

Je tweede benadering zou erg snel moeten zijn.

Er zijn twee problemen met uw code:

  1. Na het schrijven van de csv naar f u bevindt zich aan het einde van het bestand. U moet uw positie terugzetten naar het begin voordat u begint te lezen.
  2. Als je een csv schrijft, moet je de header en index weglaten

Dit is hoe je uiteindelijke code eruit zou moeten zien:

import io
f = io.StringIO()
pd.DataFrame({'a':[1,2], 'b':[3,4]}).to_csv(f, index=False, header=False)  # removed header
f.seek(0)  # move position to beginning of file before reading
cursor = conn.cursor()
cursor.execute('create table bbbb (a int, b int);COMMIT; ')
cursor.copy_from(f, 'bbbb', columns=('a', 'b'), sep=',')
cursor.execute("select * from bbbb;")
a = cursor.fetchall()
print(a)
cursor.close()



  1. KOLOM WIJZIGEN in orakel - Hoe controleer ik of een kolom nullable is voordat deze op nullable wordt gezet?

  2. ADODFCMP-hulpprogramma

  3. PHP &mySQL:jaar 2038 Bug:wat is het? Hoe het op te lossen?

  4. Moet de tijdzone van MySQL worden ingesteld op UTC?