sql >> Databasteknik >  >> RDS >> PostgreSQL

Skriv snabb pandas dataram till postgres

Ditt andra tillvägagångssätt bör vara mycket snabbt.

Det finns två problem med din kod:

  1. Efter att ha skrivit csv till f du är placerad i slutet av filen. Du måste återställa din position till början innan du börjar läsa.
  2. När du skriver en csv måste du utelämna rubriken och indexet

Så här ska din slutliga kod se ut:

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. Oracle:hur UPSERT (uppdatera eller infoga i en tabell?)

  2. Hitta icke-numeriska värden i en kolumn i SQL Server

  3. Hämta den senaste raden för givet ID

  4. FEL:behörighet nekades för sekvensen city_id_seq med Postgres