Andmete puhastamine võtab andmeteaduses kahtlemata palju aega ja andmete puudumine on üks väljakutsetest, millega sageli kokku puutute. pandas on väärtuslik Pythoni andmetega manipuleerimise tööriist, mis aitab muu hulgas parandada andmekogus puuduvad väärtused.
Puuduvad andmed saate parandada, jättes need maha või täites need muude väärtustega. Selles artiklis selgitame ja uurime erinevaid võimalusi puuduvate andmete täitmiseks pandade abil.
1. Kasutage fillna() meetodit:
The fillna() funktsioon itereerib läbi teie andmestiku ja täidab kõik nullread määratud väärtusega. See aktsepteerib mõningaid valikulisi argumente – võtke arvesse järgmisi argumente.
Väärtus: see on väärtus, mille soovite puuduvatele ridadele lisada.
meetod: Võimaldab täita puuduvad väärtused edasi või vastupidi. See aktsepteerib a 'bfill' või 'täita' parameeter.
Kohas: See aktsepteerib tingimuslause. Kui Tõene, muudab see DataFrame'i jäädavalt. Muidu ei tee.
Enne alustamist veenduge, et installite oma seadmesse pandad Pythoni virtuaalne keskkond kasutades pip oma terminalis:
pip install pandad
Järgmisena loome Pythoni skriptis praktika DataFrame ja sisestame nullväärtused (Nan) mõnele reale:
import pandad
df = pandad. DataFrame({'A' :[0, 3, puudub, 10, 3, puudub],
„B”: [puudub, puudub, 7.13, 13.82, 7, 7],
'C': [puudub, "Pandas", puudub, "Pandas", "Python", "JavaScript"]})
Seotud:Exceli andmete importimine Pandade abil Pythoni skriptidesse
Nüüd uurige, kuidas saate neid puuduvaid väärtusi täita, kasutades erinevaid pandades saadaolevaid meetodeid.
See meetod hõlmab puuduvate väärtuste asendamist arvutatud keskmistega. Puuduvate andmete täitmine keskmise või mediaanväärtusega on rakendatav, kui kaasatud veergudel on täisarvu või ujuvandmete tüübid.
Samuti saate puuduvad andmed täita režiimi väärtusega, mis on kõige sagedamini esinev väärtus. See kehtib ka täisarvude või ujukite kohta. Kuid see on mugavam, kui kõnealused veerud sisaldavad stringe.
Siin on, kuidas sisestada keskmine ja mediaan varem loodud DataFrame'i puuduvatele ridadele.
#Iga veeru keskmise väärtuse lisamiseks puuduvatele ridadele:
df.fillna (df.mean().round (1), inplace=True)
#Mediaani jaoks:
df.fillna (df.median().round (1), inplace=True)
print (df)
Modaalse väärtuse sisestamine, nagu tegite ülaltoodud keskmise ja mediaani jaoks, ei hõlma kogu DataFrame'i. Kuid võite selle sisestada konkreetsesse veergu, näiteks veergu C:
df['C'].fillna (df['C'].mode()[0], inplace=True)
Seda arvestades on endiselt võimalik sisestada iga veeru modaalväärtus korraga selle puuduvatele ridadele kasutades for-silmust:
i jaoks df.veerudes:
df[i].fillna (df[i].mode()[0], inplace=True)
print (df)
Kui soovite keskmise, mediaani või režiimi sisestamisel olla veeruspetsiifiline, toimige järgmiselt.
df.fillna({"A":df['A'].mean(),
"B": df['B'].mediaan(),
"C": df['C'].mode()[0]},
inplace=True)
print (df)
Täitke nullread väärtustega, kasutades täitmist
See hõlmab täitmismeetodi määramist sees fillna() funktsiooni. See meetod täidab iga puuduva rea selle kohal oleva lähima rea väärtusega.
Võite seda nimetada ka edasiseks täitmiseks:
df.fillna (method='täitmine', inplace=True)
Täitke puuduvad read väärtustega, kasutades bfill
Siin asendate täitke ülalmainitud meetodiga btäita. See täidab DataFrame'i iga puuduva rea lähima väärtusega selle all.
Seda nimetatakse tagurpidi täitmiseks:
df.fillna (method='bfill', inplace=True)
2. Asenda() meetod
Saate asendada Nan väärtused konkreetses veerus koos keskmise, mediaani, režiimi või mõne muu väärtusega.
Seotud:panda käsud andmeraamide manipuleerimiseks
Vaadake, kuidas see toimib, asendades nimega veerus olevad nullread selle keskmise, mediaani või režiimiga:
import pandad
import numpy #see eeldab, et olete varem numpy installinud
#Asenda nullväärtused keskmisega:
df['A'].replace([numpy.nan], df[A].mean(), inplace=True)
#Asenda veerg A mediaaniga:
df['B'].replace([numpy.nan], df[B].median(), inplace=True)
#Kasutage veeru C modaalväärtust:
df['C'].replace([numpy.nan], df['C'].mode()[0], inplace=True)
print (df)
3. Täitke puuduvad andmed käsuga interpolate ()
The interpoleerida () Funktsioon kasutab DataFrame'is olemasolevaid väärtusi puuduvate ridade hindamiseks.
Käivitage järgmine kood, et näha, kuidas see toimib:
#Interpoleerige tagurpidi üle veeru:
df.interpolate (meetod ='lineaarne', limit_direction ='tagasi', inplace=True)
#Interpoleerige veeru edasises järjekorras:
df.interpolate (meetod ='lineaarne', limit_direction ='edasi', inplace=True)
Käsitlege puuduvaid ridu hoolikalt
Kuigi oleme kaalunud ainult puuduvate andmete täitmist vaikeväärtustega, nagu keskmised, režiim ja muud meetodid, on puuduvate väärtuste parandamiseks olemas ka teisi tehnikaid. Näiteks andmeteadlased eemaldavad mõnikord need puuduvad read olenevalt juhtumist.
Lisaks on oluline oma strateegia enne selle kasutamist kriitiliselt läbi mõelda. Vastasel juhul võite saada soovimatuid analüüsi- või ennustustulemusi. Mõned esialgsed andmete visualiseerimise strateegiad võivad aidata.
Kuvage oma andmeid Jupyteri sülearvuti graafikutega.
Loe edasi
- Programmeerimine
- Python
- Programmeerimine
- andmebaasi

Idowu on kirglik kõige nutika tehnoloogia ja tootlikkuse vastu. Vabal ajal mängib ta ringi kodeerimisega ja lülitub igavlemisel malelauale, kuid armastab ka aeg-ajalt rutiinist lahti murda. Tema kirg näidata inimestele teed kaasaegses tehnikas motiveerib teda rohkem kirjutama.
Liituge meie uudiskirjaga
Liituge meie uudiskirjaga tehniliste näpunäidete, arvustuste, tasuta e-raamatute ja eksklusiivsete pakkumiste saamiseks!
Tellimiseks klõpsake siin