Metodo Panda To_sql

Metodo Panda To_sql
Comprenderemo come utilizzare la funzione Panda To_sql () in questo tutorial. Questa funzione ci consente di salvare i record Pandas in un database SQL.

Sintassi della funzione

La funzione ha una sintassi come mostrato:

DataFrame.to_sql (nome, con, schema = nessuno, if_exists = 'fail', index = true, index_label = nessuno, chunksize = nessuno, dtype = nessuno, method = non)

Parametri della funzione

Discutiamo i parametri della funzione e cosa comporta ciascuno:

  1. Nome - si riferisce alla tabella SQL in cui i dati vengono salvati.
  2. Con - si riferisce alla connessione al motore del database. Il motore SQLalchemy gestisce la connessione al database. Quindi, è possibile utilizzare qualsiasi database supportato dalla libreria.
  3. Schema: specifica lo schema target in base al quale salvare i dati.
  4. if_exists - imposta le azioni se la tabella specificata esiste già nello schema target. Le opzioni accettate includono:
    • -Fail - Aumenta un errore.
    • Sostituisci: lascia cadere la tabella e aggiunge la nuova tabella.
    • Append: inserisce i nuovi dati a quelli esistenti.
  5. indice: consente di scrivere l'indice del telaio dati come colonna. Se l'indice ha un nome, la funzione lo utilizzerà come nome della colonna nel database.
  6. INDICE_LABEL - Se l'indice_column non ha un nome, puoi specificarne uno utilizzando questo parametro.
  7. CHUNKSIZE - Specifica quante righe possono essere scritte alla volta. Se non specificato, la funzione scriverà tutte le righe contemporaneamente.
  8. dType: specifica il tipo di dati per le colonne.
  9. Metodo: questo parametro definisce il metodo SQL utilizzato per inserire i dati. I valori accettati includono:
    • Nessuno - utilizza l'inserto SQL standard.
    • Multi - - consente di passare più valori in una singola istruzione.

Ulteriori informazioni sui metodi di inserto SQL.

Valore di ritorno della funzione

La funzione restituisce il numero di righe interessate dall'operazione SQL.

Esempio:

In questo esempio, inseriremo il seguente dati di dati in un database MySQL.

https: // www.Dropbox.com/s/kql82sncnu7j3c1/film.CSV?dl = 0

Passaggio 1: iniziare importando le librerie richieste e caricando il telaio dati.

Importa panda come PD
df = pd.read_csv ('film.csv ', index_col = [0])

Una volta caricato il telaio dati, procedere al passaggio successivo.

Passaggio 2: il passo successivo è creare uno schema di database. Apri il tuo terminale e connettiti all'istanza MySQL.

$ mysql -u root -p

Una volta effettuato l'accesso, crea uno schema di database come mostrato:

mysql> Crea database pandas_sample;

Il codice sopra dovrebbe creare un database chiamato 'Pandas_Sample.'. Sentiti libero di cambiarlo per l'operazione desiderata.

Passaggio 3: Successivamente, torniamo al nostro codice Python e connettiamo al database. Possiamo iniziare importando sqlalchemy e creando la connessione al motore.

da sqlalchemy import create_engine
Engine = create_engine ("mysql+pymysql: // root: [email protected]: 3306/Pandas_Sample?chatset = utf8mb4 ")

Nell'esempio sopra, iniziamo importando il modulo Create_Engine dalla libreria SQLalchemy.

Quindi creiamo una connessione al motore MySQL utilizzando la sintassi mostrata di seguito:

create_engine ("mysql+pymysql: // utente: pass@host: port/dbname

Nota: se non è installata la libreria PymySQL, il codice sopra restituirà un errore.

Puoi risolverlo installando la libreria come mostrato:

PIP3 Installa PymSQL

Passaggio 4: una volta che abbiamo tutto attivo e in esecuzione, possiamo salvare il telaio di dati caricato nel database utilizzando la funzione TO_SQL () come mostrato:

df.to_sql ('film', con = motore)

Il codice sopra dovrebbe creare una nuova tabella chiamata "Film" e inserire i valori di dati dati.

Per visualizzare tutti i record nel database, possiamo eseguire:

mysql> usa pandas_sample;
mysql> seleziona * dai film;

Questo dovrebbe restituire i record dal frame dati come mostrato:

Puoi anche usare Python per ottenere i record dal database come mostrato:

motore.Esecute ('Select * from Film').fetchall ()

I valori risultanti sono come mostrati:

Conclusione

Questo articolo esplora come utilizzare la funzione Pandas to_sql () per salvare un frame dati in un database MySQL.