sql >> Databáze >  >> RDS >> PostgreSQL

Napište rychlý datový rámec pandy do postgresu

Váš druhý přístup by měl být velmi rychlý.

Váš kód má dva problémy:

  1. Po zapsání csv do f jste umístěni na konci souboru. Než začnete číst, musíte svou pozici vrátit na začátek.
  2. Při psaní csv je třeba vynechat záhlaví a index

Zde je, jak by měl váš konečný kód vypadat:

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. Dotaz na parametr (nastavení postgresql.conf), jako je max_connections

  2. postgresql - sql - počet "skutečných" hodnot

  3. Chyba SQL dotazu WordPress MySQL ve třídě WPDB

  4. Jak funguje funkce to_number() v PostgreSQL