Puuttuvien Arvojen Käsittely
Vain rajallinen määrä koneoppimismalleja pystyy käsittelemään puuttuvia arvoja, joten aineisto on tarkistettava, jotta varmistetaan, ettei aukkoja jää jäljelle. Jos puuttuvia arvoja esiintyy, ne voidaan käsitellä kahdella tavalla:
- Poistamalla rivit, jotka sisältävät puuttuvia arvoja;
- Täyttämällä tyhjät solut korvaavilla arvoilla, prosessi tunnetaan nimellä imputointi.
Puuttuvien arvojen tunnistaminen
Yleisten tietojen tulostamiseen aineistosta ja puuttuvien arvojen tarkistamiseen voidaan käyttää DataFrame-olion .info()-metodia.
12345import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins.csv') print(df.info())
Tietojoukossa on 344 havaintoa, mutta sarakkeissa 'culmen_depth_mm', 'flipper_length_mm', 'body_mass_g' ja 'sex' on jokaisessa alle 344 ei-null-arvoa, mikä osoittaa puuttuvien arvojen olemassaolon.
Null on toinen nimitys puuttuville arvoille.
Puuttuvien arvojen määrän tunnistamiseksi kussakin sarakkeessa käytetään .isna()-metodia ja sen jälkeen .sum()-metodia.
12345import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins.csv') print(df.isna().sum())
Rivit, jotka sisältävät puuttuvia arvoja, voidaan näyttää seuraavasti:
df[df.isna().any(axis=1)]
12345import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins.csv') print(df[df.isna().any(axis=1)])
Rivien poistaminen
Ensimmäinen ja viimeinen rivi sisältävät vain kohteen ('species') ja 'island'-arvot, tarjoten liian vähän tietoa ollakseen hyödyllisiä. Nämä rivit voidaan poistaa säilyttämällä vain ne, joissa on alle kaksi NaN-arvoa, ja tallentamalla tulos uudelleen muuttujaan df.
123456import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins.csv') df = df[df.isna().sum(axis=1) < 2] print(df.head(8))
Sen sijaan jäljelle jäävät rivit sisältävät hyödyllistä tietoa, ja NaN-arvoja esiintyy vain 'sex'-sarakkeessa. Näiden rivien poistamisen sijaan puuttuvat arvot voidaan imputoida. Yleinen tapa on käyttää SimpleImputer-muuntajaa, jota käsitellään seuraavassa luvussa.
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Awesome!
Completion rate improved to 3.13
Puuttuvien Arvojen Käsittely
Pyyhkäise näyttääksesi valikon
Vain rajallinen määrä koneoppimismalleja pystyy käsittelemään puuttuvia arvoja, joten aineisto on tarkistettava, jotta varmistetaan, ettei aukkoja jää jäljelle. Jos puuttuvia arvoja esiintyy, ne voidaan käsitellä kahdella tavalla:
- Poistamalla rivit, jotka sisältävät puuttuvia arvoja;
- Täyttämällä tyhjät solut korvaavilla arvoilla, prosessi tunnetaan nimellä imputointi.
Puuttuvien arvojen tunnistaminen
Yleisten tietojen tulostamiseen aineistosta ja puuttuvien arvojen tarkistamiseen voidaan käyttää DataFrame-olion .info()-metodia.
12345import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins.csv') print(df.info())
Tietojoukossa on 344 havaintoa, mutta sarakkeissa 'culmen_depth_mm', 'flipper_length_mm', 'body_mass_g' ja 'sex' on jokaisessa alle 344 ei-null-arvoa, mikä osoittaa puuttuvien arvojen olemassaolon.
Null on toinen nimitys puuttuville arvoille.
Puuttuvien arvojen määrän tunnistamiseksi kussakin sarakkeessa käytetään .isna()-metodia ja sen jälkeen .sum()-metodia.
12345import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins.csv') print(df.isna().sum())
Rivit, jotka sisältävät puuttuvia arvoja, voidaan näyttää seuraavasti:
df[df.isna().any(axis=1)]
12345import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins.csv') print(df[df.isna().any(axis=1)])
Rivien poistaminen
Ensimmäinen ja viimeinen rivi sisältävät vain kohteen ('species') ja 'island'-arvot, tarjoten liian vähän tietoa ollakseen hyödyllisiä. Nämä rivit voidaan poistaa säilyttämällä vain ne, joissa on alle kaksi NaN-arvoa, ja tallentamalla tulos uudelleen muuttujaan df.
123456import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins.csv') df = df[df.isna().sum(axis=1) < 2] print(df.head(8))
Sen sijaan jäljelle jäävät rivit sisältävät hyödyllistä tietoa, ja NaN-arvoja esiintyy vain 'sex'-sarakkeessa. Näiden rivien poistamisen sijaan puuttuvat arvot voidaan imputoida. Yleinen tapa on käyttää SimpleImputer-muuntajaa, jota käsitellään seuraavassa luvussa.
Kiitos palautteestasi!