Aan de slagGa gratis aan de slag

Een CSV in een tabel laden

Je hebt tot nu toe uitstekend werk geleverd met het inserten van data in tabellen! Nu ga je leren hoe je de inhoud van een CSV-bestand in een tabel laadt.

Eén manier is om een CSV-bestand regel voor regel te lezen, van elke regel een dictionary te maken en vervolgens insert() te gebruiken, zoals je in de vorige oefening deed.

Maar met pandas kan het sneller. Je kunt een CSV-bestand inlezen in een DataFrame met de functie read_csv() (die zou je bekend moeten voorkomen; je kunt help(pd.read_csv) in de console draaien om je geheugen op te frissen!). Daarna kun je de methode .to_sql() (docs) op het DataFrame aanroepen om het in een SQL-tabel in een database te laden. De kolommen van het DataFrame moeten overeenkomen met de kolommen van de SQL-tabel.

.to_sql() heeft veel parameters, maar in deze oefening gebruiken we de volgende:

  • name is de naam van de SQL-tabel (als string).
  • con is de connectie met de database die je gebruikt om de data te uploaden.
  • if_exists bepaalt wat er gebeurt als de tabel al in de database bestaat; mogelijke waarden zijn "fail", "replace" en "append".
  • index (True of False) geeft aan of je de index van het DataFrame als kolom wegschrijft.

In deze oefening upload je de data uit het bestand census.csv naar een bestaande tabel "census". De connection met de database is al voor je aangemaakt.

Deze oefening maakt deel uit van de cursus

Introductie tot databases in Python

Cursus bekijken

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# import pandas
import pandas as pd

# read census.csv into a DataFrame : census_df
census_df = pd.___(___, ___=___)

# rename the columns of the census DataFrame
census_df.columns = [___, ___, ___, 'pop2000', 'pop2008']
Code bewerken en uitvoeren