Pandas to_sql -metode

Pandas to_sql -metode
Vi vil forstå hvordan du bruker Pandas to_sql () -funksjonen gjennom denne opplæringen. Denne funksjonen lar oss lagre Pandas -poster i en SQL -database.

Funksjonssyntaks

Funksjonen har en syntaks som vist:

Dataramme.to_sql (navn, con, skjema = ingen, if_exists = 'fail', index = true, index_label = none, chunksize = ingen, dtype = ingen, metode = ingen)

Funksjonsparametere

La oss diskutere funksjonsparametrene og hva hver enkelt innebærer:

  1. Navn - refererer til SQL -tabellen der dataene lagres.
  2. Con - refererer til tilkoblingen til databasemotoren. Sqlalchemy -motoren administrerer forbindelsen til databasen. Derfor kan du bruke hvilken som helst database som støttes av biblioteket.
  3. skjema - Angir målskjemaet som du kan lagre dataene.
  4. IF_EXISTS - Angir handlingene hvis den spesifiserte tabellen allerede eksisterer i målskjemaet. Aksepterte alternativer inkluderer:
    • -mislykkes - reiser en feil.
    • Erstatt - slipper bordet og legger til den nye tabellen.
    • Legg til - setter inn de nye dataene til de eksisterende.
  5. Indeks - gjør at indeksen til DataFrame kan skrives som en kolonne. Hvis indeksen har et navn, vil funksjonen bruke den som kolonnens navn i databasen.
  6. INDEX_LABEL - Hvis INDEX_COLUMN ikke har et navn, kan du spesifisere en ved hjelp av denne parameteren.
  7. Chunksize - Angir hvor mange rader som kan skrives om gangen. Hvis ikke spesifisert, vil funksjonen skrive alle radene på en gang.
  8. dtype - Angir datatypen for kolonnene.
  9. Metode - Denne parameteren definerer SQL -metoden som brukes til å sette inn dataene. Aksepterte verdier inkluderer:
    • Ingen - bruker standard SQL -innsats.
    • Multi - - tillater å sende flere verdier til en enkelt uttalelse.

Lær mer om SQL Insert -metodene.

Funksjonsretur

Funksjonen returnerer antall rader som er berørt av SQL -operasjonen.

Eksempel:

I dette eksemplet vil vi sette inn følgende DataFrame i en MySQL -database.

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

Trinn 1: Begynn med å importere de nødvendige bibliotekene og last inn DataFrame.

Importer pandaer som PD
df = pd.read_csv ('filmer.csv ', index_col = [0])

Når DataFrame er lastet, fortsett til neste trinn.

Trinn 2: Neste trinn er å lage et databaseskjema. Åpne terminalen din og koble til MySQL -forekomsten.

$ mysql -u root -p

Når du er logget inn, oppretter du et databaseskjema som vist:

mysql> Opprett database pandas_sample;

Koden over skal opprette en database som heter 'Pandas_sample.'. Endre dette for ønsket operasjon.

Trinn 3: La oss deretter gå tilbake til Python -koden vår og koble til databasen. Vi kan starte med å importere Sqlalchemy og lage forbindelsen til motoren.

fra sqlalchemy import create_engine
motor = create_engine ("mysql+pymysql: // root: [email protected]: 3306/pandas_sample?charset = utf8mb4 ")

I eksemplet over starter vi med å importere Create_Engine -modulen fra SQLalchemy Library.

Vi oppretter deretter en tilkobling til MySQL -motoren ved å bruke syntaks som er vist nedenfor:

create_engine ("mysql+pymysql: // bruker: pass@vert: port/dbname

Merk: Hvis du ikke har Pymysql -biblioteket installert, vil koden over returner en feil.

Du kan løse dette ved å installere biblioteket som vist:

PIP3 installer PymSql

Trinn 4: Når vi har alt i gang, kan vi lagre den lastede DataFrame i databasen ved å bruke TO_SQL () -funksjonen som vist:

df.to_sql ('filmer', con = motor)

Ovennevnte kode skal opprette en ny tabell som heter 'Filmer' og sette inn DataFrame -verdiene.

For å se alle postene i databasen, kan vi kjøre:

mysql> bruk pandas_sample;
mysql> velg * fra filmer;

Dette skal returnere postene fra DataFrame som vist:

Du kan også bruke Python for å få postene fra databasen som vist:

motor.Utfør ('Velg * fra filmer').Fetchall ()

De resulterende verdiene er som vist:

Konklusjon

Denne artikkelen undersøker hvordan du bruker Pandas to_sql () -funksjonen for å lagre en DataFrame i en MySQL -database.