sql >> Databáze >  >> RDS >> Mysql

Jak vložit datový rámec pandy přes mysqldb do databáze?

Aktualizace:

Nyní existuje to_sql metoda, která je upřednostňovaným způsobem, než write_frame :

df.to_sql(con=con, name='table_name_for_df', if_exists='replace', flavor='mysql')

Upozorňujeme také:syntaxe se může v pandách 0.14 změnit...

Připojení můžete nastavit pomocí MySQLdb :

from pandas.io import sql
import MySQLdb

con = MySQLdb.connect()  # may need to add some other options to connect

Nastavení flavor z write_frame na 'mysql' znamená, že můžete zapisovat do mysql:

sql.write_frame(df, con=con, name='table_name_for_df', 
                if_exists='replace', flavor='mysql')

Argument if_exists říká pandám, jak jednat, pokud tabulka již existuje:

if_exists: {'fail', 'replace', 'append'} , výchozí 'fail'
     fail :Pokud tabulka existuje, nedělejte nic.
     replace :Pokud tabulka existuje, zrušte ji, vytvořte ji znovu a vložte data.
     append :Pokud tabulka existuje, vložte data. Vytvořit, pokud neexistuje.

Přestože write_frame dokumenty v současné době naznačují, že to funguje pouze na sqlite, zdá se, že mysql je podporováno a ve skutečnosti existuje docela dost testování mysql v kódové základně .



  1. Jak extrahovat den, měsíc a rok z data v SQLite

  2. Uložte výstup z funkce SQL do souboru csv (COPY) s dynamickým názvem souboru

  3. Kumulativně přidejte chybějící data z předchozího měsíce nebo roku

  4. Nový příznak trasování pro opravu výkonu proměnné tabulky