Oppikaa tekoälyä Pythonilla · Oppitunti

Pandasin ja SQL:n integrointi

pd.read_sql(), df.to_sql(), SQLAlchemy-moottori ja tietokantatulosten kysely suoraan DataFrameihin.

Oppitunti 2/413 vaihetta

Pandasin ja SQL:n integrointi on ilmainen Oppikaa tekoälyä Pythonilla-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Oppikaa tekoälyä Pythonilla-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Oppikaa tekoälyä Pythonilla-kurssilla on yhteensä 4 oppituntia.

Pandas kohtaa SQL:n

Sinun ei tarvitse valita SQL:n ja pandasin välillä — ne toimivat yhdessä. Tee tietokantakysely DataFrameen, muokkaa tietoja pandasilla ja kirjoita tulokset takaisin.

Yhdistävänä tekniikkana ovat SQLAlchemy sekä pandas-funktiot read_sql ja to_sql.

Miksi SQLAlchemy?

pandas käyttää tietokantoja yhteyden tai SQLAlchemy-enginen kautta. Engine piilottaa tietokannan tyypin yksityiskohdat, joten sama koodi toimii SQLiteen, PostgreSQL:ään, MySQL:ään ja muihin tietokantoihin — vaihdat vain URL-osoitteen.

Enginen luominen

create_engine saa yhteyden URL-osoitteen. URL-osoitteen skeema määrittää tietokanta-ajurin.

from sqlalchemy import create_engine

engine = create_engine("sqlite:///ml.db")
# Postgres: create_engine("postgresql://user:pass@host:5432/db")

Taulun lukeminen komennolla pd.read_sql

pd.read_sql suorittaa kyselyn tai lukee taulun ja palauttaa DataFramen. Välitä sille SQL-merkkijono ja engine.

import pandas as pd

df = pd.read_sql("SELECT * FROM experiments", engine)
print(df.head())

Lukeminen suodatetulla kyselyllä

Anna tietokannan hoitaa suodatus ja koostaminen ja välitä pandasille sen jälkeen pienempi tulos. Tämä on paljon tehokkaampaa kuin kaiken lataaminen.

df = pd.read_sql(
    "SELECT name, accuracy FROM experiments WHERE accuracy > 0.85 ORDER BY accuracy DESC",
    engine,
)
print(df)

Parametroitavat kyselyt

Välitä kyselyn parametrit turvallisesti params-argumentilla merkkijonojen muotoilun sijaan.

from sqlalchemy import text

df = pd.read_sql(
    text("SELECT * FROM experiments WHERE name = :n"),
    engine,
    params={"n": "xgb"},
)

DataFramen kirjoittaminen komennolla df.to_sql

df.to_sql(table, engine) kirjoittaa DataFramen tietokantatauluun ja luo taulun tarvittaessa DataFramen tietotyyppien perusteella.

df.to_sql("results", engine, index=False)

index-parametri

Oletusarvoisesti to_sql kirjoittaa DataFramen indeksin sarakkeeksi. Yleensä et halua tätä — ohita indeksi välittämällä index=False.

df.to_sql("results", engine, index=False)   # no extra index column

if_exists-parametri

if_exists määrittää toiminnan, kun taulu on jo olemassa:

  • "fail" — aiheuta virhe (oletus)
  • "replace" — poista taulu ja luo se uudelleen
  • "append" — lisää rivit olemassa olevaan tauluun
df.to_sql("results", engine, if_exists="append", index=False)
# Use "replace" to overwrite, "fail" to be safe

Edestakainen työnkulku

Tyypillinen putki: lue raakadata SQL:stä, muokkaa sitä pandasilla ja kirjoita puhdistettu tulos takaisin uuteen tauluun.

import pandas as pd
from sqlalchemy import create_engine

engine = create_engine("sqlite:///ml.db")
raw = pd.read_sql("SELECT * FROM experiments", engine)
raw["accuracy_pct"] = (raw["accuracy"] * 100).round(1)
raw.to_sql("experiments_clean", engine, if_exists="replace", index=False)

Suurten taulujen lukeminen paloissa

Jos taulu on liian suuri mahtuakseen muistiin, välitä chunksize komennolle read_sql, jotta voit käsitellä tulosta erissä.

for chunk in pd.read_sql("SELECT * FROM big_table", engine, chunksize=10000):
    process(chunk)   # handle 10k rows at a time

Pikatarkistus: rivien lisääminen

Haluat komennon to_sql lisäävän uusia rivejä olemassa olevaan tauluun poistamatta sitä.

Kertaus: pandas ja SQL

Osaat nyt siirtää dataa pandasin ja tietokantojen välillä:

  • create_engine(url) tietokannasta riippumattomaan yhteyteen
  • pd.read_sql(query, engine) kyselytulosten lataamiseen DataFrameen
  • df.to_sql(table, engine, index=False, if_exists=...) tulosten kirjoittamiseen takaisin
  • parametroitavat kyselyt ja chunksize turvallisuutta ja skaalautuvuutta varten

Seuraavaksi koneoppimiskokeiden tulosten tallentaminen ja kysely.

Aloita maksutta

Opi Python tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
53
Oppitunnit
225

Usein kysytyt kysymykset

Onko oppitunti ”Pandasin ja SQL:n integrointi” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Oppikaa tekoälyä Pythonilla-oppimispolun 3 oppituntia, myös oppitunnin “Pandasin ja SQL:n integrointi”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppikaa tekoälyä Pythonilla-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Pandasin ja SQL:n integrointi”?

pd.read_sql(), df.to_sql(), SQLAlchemy-moottori ja tietokantatulosten kysely suoraan DataFrameihin. Harjoittelet Oppikaa tekoälyä Pythonilla-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Oppikaa tekoälyä Pythonilla-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Oppikaa tekoälyä Pythonilla-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.

Kuinka kauan ”Pandasin ja SQL:n integrointi”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Oppikaa tekoälyä Pythonilla-oppitunnilla?

Kyllä. Jokainen Oppikaa tekoälyä Pythonilla-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. SQLite Pythonin sqlite3-moduulilla
  2. Pandasin ja SQL:n integrointi
  3. ML-tulosten tallentaminen ja kysely
  4. Johdatus vektoritietokantoihin
← Takaisin: Oppikaa tekoälyä Pythonilla