Datu tīrīšana neapšaubāmi aizņem daudz laika datu zinātnē, un datu trūkums ir viena no problēmām, ar ko jūs bieži saskarsities. pandas ir vērtīgs Python datu manipulācijas rīks, kas cita starpā palīdz izlabot datu kopā trūkstošās vērtības.

Varat labot trūkstošos datus, nometot tos vai aizpildot tos ar citām vērtībām. Šajā rakstā mēs izskaidrosim un izpētīsim dažādus veidus, kā aizpildīt trūkstošos datus, izmantojot pandas.

1. Izmantojiet fillna() metodi:

The fillna () funkcija atkārto jūsu datu kopu un aizpilda visas nulles rindas ar noteiktu vērtību. Tā pieņem dažus izvēles argumentus — ņemiet vērā tālāk minētos argumentus.

Vērtība: šī ir vērtība, kuru vēlaties ievietot trūkstošajās rindās.

Metode: ļauj aizpildīt trūkstošās vērtības uz priekšu vai otrādi. Tā pieņem a 'bfill' vai 'piepildīt' parametrs.

Vietā: Tiek pieņemts nosacījuma paziņojums. Ja True, tas neatgriezeniski maina DataFrame. Citādi tā nav.

Pirms sākam, noteikti savā ierīcē instalējiet pandas Python virtuālā vide izmantojot pip savā terminālī:

pip instalēt pandas

Pēc tam Python skriptā mēs izveidosim praksi DataFrame un ievietosim nulles vērtības (Nan) dažās rindās:

importēt pandas
df = pandas. DataFrame({'A' :[0, 3, nav, 10, 3, nav],
“B”: [nav, nav, 7.13, 13.82, 7, 7],
'C': [Nav, "Pandas", Nav, "Pandas", "Python", "JavaScript"]})

Saistīts:Kā importēt Excel datus Python skriptos, izmantojot Pandas

Tagad pārbaudiet, kā aizpildīt šīs trūkstošās vērtības, izmantojot dažādas pandas pieejamās metodes.

Šī metode ietver trūkstošo vērtību aizstāšanu ar aprēķinātajiem vidējiem. Trūkstošo datu aizpildīšana ar vidējo vai vidējo vērtību ir piemērojama, ja attiecīgajās kolonnās ir veselu skaitļu vai peldošo datu tipi.

Varat arī aizpildīt trūkstošos datus ar režīma vērtību, kas ir visbiežāk sastopamā vērtība. Tas attiecas arī uz veseliem skaitļiem vai pludiņiem. Bet tas ir ērtāk, ja attiecīgajās kolonnās ir virknes.

Tālāk ir norādīts, kā ievietot vidējo un vidējo vērtību trūkstošajās rindās DataFrame, ko izveidojāt iepriekš:

#Lai ievietotu katras kolonnas vidējo vērtību tās trūkstošajās rindās:
df.fillna (df.mean().round (1), inplace=True)
#Mediānai:
df.fillna (df.median().round (1), inplace=True)
drukāt (df)

Modālās vērtības ievietošana, kā jūs to izdarījāt iepriekš minētajai vidējai un mediānai, neuztver visu DataFrame. Bet jūs varat ievietot to noteiktā kolonnā, piemēram, kolonnā C:

df['C'].fillna (df['C'].mode()[0], inplace=True)

Ņemot to vērā, joprojām ir iespējams ievietot katras kolonnas modālo vērtību tās trūkstošajās rindās uzreiz izmantojot for cilpu:

i df.columns:
df[i].fillna (df[i].mode()[0], inplace=True)
drukāt (df)

Ja vēlaties, lai, ievietojot vidējo, vidējo vai režīmu, norādītu konkrētu kolonnu:

df.fillna({"A":df['A'].mean(), 
"B": df['B'].median(),
"C": df['C'].mode()[0]},
vietā = True)
drukāt (df)

Aizpildiet nulles rindas ar vērtībām, izmantojot funkciju ffill

Tas ietver aizpildīšanas metodes norādīšanu iekšpusē kā fillna () funkcija. Šī metode aizpilda katru trūkstošo rindu ar tuvākās rindas vērtību virs tās.

Varat to saukt arī par aizpildīšanu uz priekšu:

df.fillna (method='ffill', inplace=true)

Aizpildiet trūkstošās rindas ar vērtībām, izmantojot bfill

Šeit jūs nomainīsit aizpildīt iepriekš minētā metode ar bfill. Tas aizpilda katru trūkstošo rindu DataFrame ar tuvāko vērtību zem tā.

To sauc par aizpildīšanu atpakaļ:

df.fillna (method='bfill', inplace=true)

2. Aizstāt() metode

Jūs varat aizstāt Nan vērtības noteiktā kolonnā ar vidējo, mediānu, režīmu vai jebkuru citu vērtību.

Saistīts:pandas komandas datu rāmju manipulēšanai

Skatiet, kā tas darbojas, aizstājot nulles rindas nosauktajā kolonnā ar tās vidējo, mediānu vai režīmu:

importēt pandas
importa numpy #Tam nepieciešams, lai jūs iepriekš būtu instalējis numpy
#Aizstāt nulles vērtības ar vidējo:
df['A'].replace([numpy.nan], df[A].mean(), inplace=True)
#Aizstāt A kolonnu ar mediānu:
df['B'].replace([numpy.nan], df[B].median(), inplace=True)
#Izmantojiet modālo vērtību kolonnai C:
df['C'].replace([numpy.nan], df['C'].mode()[0], inplace=True)
drukāt (df)

3. Aizpildiet trūkstošos datus ar interpolātu ()

The interpolēt () funkcija izmanto esošās vērtības DataFrame, lai novērtētu trūkstošās rindas.

Palaidiet šo kodu, lai redzētu, kā tas darbojas:

#Interpolējiet atpakaļ kolonnā:
df.interpolate (metode ='lineārs', limit_direction ='atpakaļ', inplace=true)
#Interpolēt uz priekšu secībā visā kolonnā:
df.interpolate (metode ='lineārs', limit_direction ='uz priekšu', inplace=true)

Rūpīgi rīkojieties ar trūkstošajām rindām

Lai gan mēs esam apsvēruši tikai trūkstošo datu aizpildīšanu ar noklusējuma vērtībām, piemēram, vidējiem rādītājiem, režīmu un citām metodēm, trūkstošo vērtību labošanai ir arī citas metodes. Piemēram, datu zinātnieki atkarībā no gadījuma dažreiz noņem šīs trūkstošās rindas.

Turklāt ir svarīgi kritiski pārdomāt savu stratēģiju pirms tās izmantošanas. Pretējā gadījumā jūs varat iegūt nevēlamus analīzes vai prognozēšanas rezultātus. Var palīdzēt dažas sākotnējās datu vizualizācijas stratēģijas.

Kā zīmēt grafikus Jupyter piezīmju grāmatiņā

Parādiet savus datus, izmantojot Jupyter Notebook diagrammas.

Lasiet Tālāk

DalītiesČivinātE-pasts
Saistītās tēmas
  • Programmēšana
  • Python
  • Programmēšana
  • datu bāze
Par autoru
Idowu Omisola (Publicēti 125 raksti)

Idowu aizraujas ar jebko viedo tehnoloģiju un produktivitāti. Brīvajā laikā viņš spēlējas ar kodēšanu un pārslēdzas uz šaha galdu, kad viņam ir garlaicīgi, taču viņam patīk arī ik pa laikam atrauties no rutīnas. Viņa aizraušanās parādīt cilvēkiem ceļu par modernajām tehnoloģijām motivē viņu rakstīt vairāk.

Vairāk no Idowu Omisola

Abonējiet mūsu biļetenu

Pievienojieties mūsu informatīvajam izdevumam, lai saņemtu tehniskos padomus, pārskatus, bezmaksas e-grāmatas un ekskluzīvus piedāvājumus!

Noklikšķiniet šeit, lai abonētu