sql >> Database teknologi >  >> RDS >> Mysql

Hvordan indsætter man pandas dataramme via mysqldb i databasen?

Opdatering:

Der er nu en to_sql metode, som er den foretrukne måde at gøre dette på, i stedet for write_frame :

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

Bemærk også:syntaksen kan ændre sig i pandas 0.14...

Du kan konfigurere forbindelsen med MySQLdb :

from pandas.io import sql
import MySQLdb

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

Indstilling af flavor af write_frame til 'mysql' betyder, at du kan skrive til mysql:

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

Argumentet if_exists fortæller pandaer, hvordan de skal håndtere, hvis bordet allerede eksisterer:

if_exists: {'fail', 'replace', 'append'} , standard 'fail'
     fail :Hvis der findes en tabel, skal du ikke gøre noget.
     replace :Hvis en tabel findes, skal du slippe den, genskabe den og indsætte data.
     append :Hvis der findes en tabel, indsæt data. Opret hvis ikke findes.

Selvom write_frame dokumenter foreslår i øjeblikket, at det kun virker på sqlite, mysql ser ud til at være understøttet, og faktisk er der en del mysql-test i kodebasen .



  1. JSON_UNQUOTE() – Fjern citater fra et JSON-dokument i MySQL

  2. Selvstudium i SQL-transaktioner

  3. Sådan returneres ASCII-kodeværdien for en given karakter i SQL Server

  4. Hvad er forskellen mellem enkelte anførselstegn og dobbelte anførselstegn i PostgreSQL?