Pandasin ja SQL:n integrointi
pd.read_sql(), df.to_sql(), SQLAlchemy-moottori ja tietokantatulosten kysely suoraan DataFrameihin.
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 columnif_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 safeEdestakainen 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 timePikatarkistus: 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 yhteyteenpd.read_sql(query, engine)kyselytulosten lataamiseen DataFrameendf.to_sql(table, engine, index=False, if_exists=...)tulosten kirjoittamiseen takaisin- parametroitavat kyselyt ja
chunksizeturvallisuutta ja skaalautuvuutta varten
Seuraavaksi koneoppimiskokeiden tulosten tallentaminen ja kysely.
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
- SQLite Pythonin sqlite3-moduulilla
- Pandasin ja SQL:n integrointi
- ML-tulosten tallentaminen ja kysely
- Johdatus vektoritietokantoihin