Tietojen puhdistaminen vie epäilemättä paljon aikaa datatieteessä, ja tietojen puuttuminen on yksi haasteista, joita kohtaat usein. pandas on arvokas Python-tietojen käsittelytyökalu, jonka avulla voit korjata muun muassa puuttuvia arvoja tietojoukostasi.
Voit korjata puuttuvat tiedot joko pudottamalla tai täyttämällä ne muilla arvoilla. Tässä artikkelissa selitämme ja tutkimme erilaisia tapoja täyttää puuttuvat tiedot pandoilla.
1. Käytä fillna()-menetelmää:
The fillna() funktio iteroi tietojoukkosi läpi ja täyttää kaikki tyhjät rivit määritetyllä arvolla. Se hyväksyy joitain valinnaisia argumentteja – ota huomioon seuraavat:
Arvo: Tämä on arvo, jonka haluat lisätä puuttuville riveille.
Menetelmä: Voit täyttää puuttuvat arvot eteen- tai taaksepäin. Se hyväksyy a 'bfill' tai 'täytä' parametri.
Paikallaan: Tämä hyväksyy ehdollisen lausunnon. Jos True, se muuttaa DataFramea pysyvästi. Muuten ei.
Ennen kuin aloitamme, varmista, että asennat pandat omaan Python-virtuaaliympäristö käyttämällä pip terminaalissasi:
pip asentaa pandat
Seuraavaksi luomme Python-skriptin sisällä käytännön DataFrame-kehyksen ja lisäämme nolla-arvoja (Nan) joillekin riveille:
tuo pandat
df = pandat. DataFrame({'A' :[0, 3, ei mitään, 10, 3, ei mitään],
'B': [Ei mitään, ei mitään, 7.13, 13.82, 7, 7],
'C': [Ei mitään, "Pandas", Ei mitään, "Pandas", "Python", "JavaScript"]})
Aiheeseen liittyvä:Kuinka tuoda Excel-tietoja Python-skripteihin Pandasin avulla
Katso nyt, kuinka voit täyttää nämä puuttuvat arvot erilaisilla pandoissa käytettävissä olevilla menetelmillä.
Tämä menetelmä sisältää puuttuvien arvojen korvaamisen lasketuilla keskiarvoilla. Puuttuvien tietojen täyttäminen keskiarvolla tai mediaaniarvolla on sovellettavissa, kun kyseisissä sarakkeissa on kokonaisluku- tai float-tietotyyppejä.
Voit myös täyttää puuttuvat tiedot tila-arvolla, joka on eniten esiintyvä arvo. Tämä koskee myös kokonaislukuja tai kellukkeita. Mutta se on kätevämpää, kun kyseiset sarakkeet sisältävät merkkijonoja.
Näin voit lisätä keskiarvon ja mediaanin puuttuville riveille aiemmin luomassasi DataFramessa:
#Kunkin sarakkeen keskiarvon lisääminen puuttuville riveille:
df.fillna (df.mean().round (1), inplace=True)
#Mediaanille:
df.fillna (df.mediaan().round (1), inplace=True)
tulostaa (df)
Modaaliarvon lisääminen, kuten teit keskiarvon ja mediaanin kohdalla, ei kaappaa koko DataFramea. Mutta voit lisätä sen tiettyyn sarakkeeseen vaikkapa sarakkeen sijaan C:
df['C'].fillna (df['C'].mode()[0], inplace=True)
Tämän jälkeen on edelleen mahdollista lisätä kunkin sarakkeen modaaliarvo sen puuttuville riveille kerralla käyttämällä for-silmukkaa:
df.columnsissa:
df[i].fillna (df[i].mode()[0], inplace=True)
tulostaa (df)
Jos haluat olla sarakekohtainen, kun lisäät keskiarvon, mediaanin tai tilan:
df.fillna({"A":df['A'].mean(),
"B": df['B'].mediaan(),
"C": df['C'].mode()[0]},
paikalla = tosi)
tulostaa (df)
Täytä tyhjät rivit arvoilla käyttämällä täyttöä
Tämä edellyttää täyttötavan määrittämistä sisällä fillna() toiminto. Tämä menetelmä täyttää jokaisen puuttuvan rivin sen yläpuolella olevan lähimmän rivin arvolla.
Voit myös kutsua sitä eteenpäin täyttämiseksi:
df.fillna (method='täyttö', inplace=True)
Täytä puuttuvat rivit arvoilla käyttämällä bfill
Täällä vaihdat täytä edellä mainittu menetelmä bfill. Se täyttää jokaisen puuttuvan rivin DataFramessa lähimmällä sen alapuolella olevalla arvolla.
Tätä kutsutaan taaksepäin täyttämiseksi:
df.fillna (method='bfill', inplace=True)
2. Replace()-menetelmä
Voit korvata Nan arvot tietyssä sarakkeessa keskiarvon, mediaanin, moodin tai minkä tahansa muun arvon kanssa.
Aiheeseen liittyvä:pandas komennot datakehysten manipulointiin
Katso, miten tämä toimii korvaamalla nimetyn sarakkeen tyhjät rivit sen keskiarvolla, mediaanilla tai tilalla:
tuo pandat
tuonti numpy #tämä edellyttää, että olet aiemmin asentanut numpyn
#Korvaa nolla-arvot keskiarvolla:
df['A'].replace([numpy.nan], df[A].mean(), inplace=True)
#Korvaa sarake A mediaanilla:
df['B'].replace([numpy.nan], df[B].median(), inplace=True)
#Käytä modaaliarvoa sarakkeessa C:
df['C'].replace([numpy.nan], df['C'].mode()[0], inplace=True)
tulostaa (df)
3. Täytä puuttuvat tiedot komennolla interpolate()
The interpoloida() Funktio käyttää DataFramen olemassa olevia arvoja puuttuvien rivien arvioimiseen.
Suorita seuraava koodi nähdäksesi, miten tämä toimii:
#Interpoloi taaksepäin sarakkeen poikki:
df.interpolate (method ='lineaarinen', limit_direction ='taaksepäin', inplace=True)
#Interpoloi eteenpäin järjestyksessä sarakkeen yli:
df.interpolate (method ='lineaarinen', limit_direction ='eteenpäin', inplace=True)
Käsittele puuttuvia rivejä huolellisesti
Vaikka olemme harkinneet vain puuttuvien tietojen täyttämistä oletusarvoilla, kuten keskiarvoilla, tilalla ja muilla menetelmillä, puuttuvien arvojen korjaamiseen on olemassa muita tekniikoita. Esimerkiksi datatieteilijät poistavat joskus nämä puuttuvat rivit tapauksesta riippuen.
Lisäksi on tärkeää miettiä strategiaasi kriittisesti ennen sen käyttämistä. Muuten saatat saada ei-toivottuja analyysi- tai ennustetuloksia. Jotkut alustavat tietojen visualisointistrategiat voivat auttaa.
Näytä tietosi Jupyter Notebook -kaavioiden avulla.
Lue Seuraava
- Ohjelmointi
- Python
- Ohjelmointi
- tietokanta
Idowu on intohimoinen kaikkeen älykkääseen tekniikkaan ja tuottavuuteen. Vapaa-ajallaan hän leikkii koodaamalla ja vaihtuu shakkilaudalle, kun on kyllästynyt, mutta hän myös pitää välillä irtautumisesta rutiineista. Hänen intohimonsa näyttää ihmisille tietä modernin tekniikan parissa motivoi häntä kirjoittamaan lisää.
tilaa uutiskirjeemme
Liity uutiskirjeemme saadaksesi teknisiä vinkkejä, arvosteluja, ilmaisia e-kirjoja ja eksklusiivisia tarjouksia!
Klikkaa tästä tilataksesi