Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Datan Suodatus ja Valinta Pythonilla | Tietojen Käsittely
Databricks Perusteet: Aloittelijan Opas

Datan Suodatus ja Valinta Pythonilla

Pyyhkäise näyttääksesi valikon

Note
Määritelmä

Valitseminen ja suodattaminen ovat yleisimpiä operaatioita datan käsittelyssä. Valitseminen mahdollistaa tiettyjen kiinnostavien sarakkeiden poimimisen, kun taas Suodattaminen rajaa rivejä tiettyjen ehtojen tai kriteerien perusteella.

Useimmissa tosielämän tilanteissa ei ole tarpeen käsitellä jokaista saraketta tai riviä tietojoukossa. Suurissa tauluissa voi olla satoja sarakkeita ja miljoonia rivejä, joista suurin osa voi olla epäolennaisia analyysisi kannalta. Tässä luvussa opit, kuinka voit "rajata" juuri tarvitsemasi datan käyttämällä select()- ja filter()-metodeja.

Tiettyjen sarakkeiden valitseminen

select()-metodi mahdollistaa uuden DataFramen luomisen, joka sisältää vain valitsemasi sarakkeet. Tämä vähentää klusterisi muistinkäyttöä ja tekee tuloksista helpommin luettavia.

# Select only two specific columns
selected_df = df.select("carat", "price")

display(selected_df)

Huomaa, että Spark ei muuta alkuperäistä df:ää. Sen sijaan se luo uuden nimeltä selected_df. Jos haluaisit valita kaikki sarakkeet yhtä lukuun ottamatta tai suorittaa laskutoimituksen valinnan aikana, käyttäisit edistyneempää syntaksia, mutta perustoiminnoissa sarakkeiden nimet annetaan merkkijonoina.

Rivien suodatus ehtojen avulla

filter()-metodi (tai sen alias where()) toimii kuin siivilä datallesi. Annetaan ehto, ja Spark säilyttää vain ne rivit, joissa ehto toteutuu.

# Filter for rows where the carat is '0.23'
filtered_df = df.filter(df.carat == 0.23)

display(filtered_df)

Voit käyttää tavallisia vertailuoperaattoreita, kuten == (yhtä suuri kuin), != (eri suuri kuin), > (suurempi kuin) ja < (pienempi kuin).

Useiden suodattimien yhdistäminen

Usein on tarpeen käyttää useampaa sääntöä samanaikaisesti. Tämän voi tehdä ketjuttamalla suodattimia tai käyttämällä loogisia operaattoreita, kuten "Ja" (&) ja "Tai" (|).

good_carat_df = df.filter((df.carat == 0.23) & (df.cut == "Good"))

display(good_carat_df)
Note
Huomio

Kun yhdistät suodattimia &- tai |-operaattorilla, laita jokainen yksittäinen ehto aina sulkeisiin. Tämä varmistaa, että Spark arvioi logiikan oikein.

Valitseminen ja suodattaminen yhdellä askeleella

Koska Spark käyttää "fluent"-rajapintaa, voit ketjuttaa nämä komennot yhteen riville. Tämä on hyvin yleinen käytäntö ammattimaisessa data engineeringissä:

# Select specific diamonds by `price > 500`
high_profit_df = df.select("carat", "price").filter(df.price > 500)

display(high_profit_df)

Työn tarkistaminen

Jokaisen valinnan tai suodatuksen jälkeen on hyvä tapa suorittaa count(). Jos aloitat 10 000 rivillä ja suodatuksen jälkeen rivejä on 0, suodatusehto saattaa olla liian tiukka tai merkkijonossa on kirjoitusvirhe.

1. Mitä metodia käyttäisit, jos haluat valita vain 3 saraketta 50-sarakkeisesta taulusta?

2. Pythonissa, mikä on oikea tapa suodattaa rivit, joissa "Total_Profit" on suurempi kuin 1000?

question mark

Mitä metodia käyttäisit, jos haluat valita vain 3 saraketta 50-sarakkeisesta taulusta?

Valitse oikea vastaus

question mark

Pythonissa, mikä on oikea tapa suodattaa rivit, joissa "Total_Profit" on suurempi kuin 1000?

Valitse oikea vastaus

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 4

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Osio 4. Luku 4
some-alt