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.

Kuidas joonistada graafikuid Jupyteri sülearvutis

Kuvage oma andmeid Jupyteri sülearvuti graafikutega.

Loe edasi

JagaSäutsMeil
Seotud teemad
  • Programmeerimine
  • Python
  • Programmeerimine
  • andmebaasi
Autori kohta
Idowu Omisola (125 artiklit avaldatud)

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.

Veel Idowu Omisolalt

Liituge meie uudiskirjaga

Liituge meie uudiskirjaga tehniliste näpunäidete, arvustuste, tasuta e-raamatute ja eksklusiivsete pakkumiste saamiseks!

Tellimiseks klõpsake siin