Duomenų valymas neabejotinai užima daug laiko duomenų moksle, o trūkstamų duomenų yra vienas iš iššūkių, su kuriais dažnai susidursite. pandas yra vertingas „Python“ duomenų apdorojimo įrankis, padedantis, be kita ko, pataisyti trūkstamas duomenų rinkinio vertes.
Trūkstamus duomenis galite pataisyti numesdami arba užpildydami kitomis reikšmėmis. Šiame straipsnyje paaiškinsime ir išnagrinėsime įvairius būdus, kaip užpildyti trūkstamus duomenis naudojant pandas.
1. Naudokite fillna() metodą:
The fillna () funkcija kartojasi per jūsų duomenų rinkinį ir užpildo visas nulines eilutes nurodyta verte. Jis priima kai kuriuos pasirenkamus argumentus – atkreipkite dėmesį į šiuos:
Vertė: tai vertė, kurią norite įterpti į trūkstamas eilutes.
Metodas: leidžia užpildyti trūkstamas reikšmes pirmyn arba atgal. Tai priima a 'bfill' arba 'užpildyti' parametras.
Vietoje: Tai priima sąlyginį teiginį. Jei „True“, „DataFrame“ pakeičiamas visam laikui. Priešingu atveju taip nėra.
Prieš pradėdami, įsitikinkite, kad į savo kompiuterį įdėjote pandas Python virtuali aplinka naudojant pip savo terminale:
pip įdiegti pandas
Tada Python scenarijaus viduje sukursime praktinį DataFrame ir įterpsime nulines reikšmes (Nan) į kelias eilutes:
importuoti pandas
df = pandos. DataFrame({'A' :[0, 3, Nėra, 10, 3, Nėra],
„B“: [nėra, nėra, 7.13, 13.82, 7, 7],
„C“: [Nėra, „Pandas“, Nėra, „Pandas“, „Python“, „JavaScript“]})
Susijęs:Kaip importuoti Excel duomenis į Python scenarijus naudojant Pandas
Dabar patikrinkite, kaip galite užpildyti šias trūkstamas reikšmes įvairiais pandų metodais.
Šis metodas apima trūkstamų verčių pakeitimą apskaičiuotais vidurkiais. Trūkstamų duomenų užpildymas vidutine arba mediana taikoma, kai atitinkamuose stulpeliuose yra sveikųjų arba slankiųjų duomenų tipai.
Taip pat galite užpildyti trūkstamus duomenis režimo reikšme, kuri yra dažniausiai pasitaikanti reikšmė. Tai taip pat taikoma sveikiesiems skaičiams arba plūdiniams skaičiams. Bet patogiau, kai atitinkamuose stulpeliuose yra eilučių.
Štai kaip įterpti vidurkį ir medianą į trūkstamas eilutes DataFrame, kurį sukūrėte anksčiau:
#Norėdami įterpti kiekvieno stulpelio vidutinę vertę į trūkstamas eilutes:
df.fillna (df.mean().round (1), inplace=True)
#Tarp medianos:
df.fillna (df.median().round (1), inplace=True)
spausdinti (df)
Modalinės reikšmės įterpimas, kaip tai padarė aukščiau esanti vidurkio ir medianos vertė, neužfiksuoja viso duomenų rėmelio. Tačiau galite įterpti jį į konkretų stulpelį, pavyzdžiui, stulpelį C:
df['C'].fillna (df['C'].mode()[0], inplace=True)
Tai pasakius, vis tiek galima iš karto įterpti kiekvieno stulpelio modalinę vertę į trūkstamas eilutes naudojant for kilpą:
i df.stulpeliuose:
df[i].fillna (df[i].mode()[0], inplace=True)
spausdinti (df)
Jei norite, kad įterpdami vidurkį, medianą arba režimą būtų konkretūs stulpeliai:
df.fillna({"A":df['A'].mean(),
"B": df['B'].median(),
"C": df['C'].mode()[0]},
vietoje = tiesa)
spausdinti (df)
Užpildykite nulines eilutes reikšmėmis naudodami užpildą
Tai apima užpildymo metodo nurodymą viduje kaip fillna () funkcija. Šis metodas užpildo kiekvieną trūkstamą eilutę artimiausios virš jos esančia reikšme.
Taip pat galite tai vadinti išankstiniu užpildymu:
df.fillna (method='fill', inplace=True)
Užpildykite trūkstamas eilutes reikšmėmis naudodami bfill
Čia jūs pakeisite užpildyti aukščiau paminėtas metodas su bužpildykite. Kiekviena trūkstama DataFrame eilutė užpildoma artimiausia po ja esančia reikšme.
Tai vadinama atgaliniu užpildymu:
df.fillna (method='bfill', inplace=True)
2. Keisti() metodas
Galite pakeisti Nan reikšmes konkrečiame stulpelyje su vidurkiu, mediana, režimu ar bet kuria kita reikšme.
Susijęs:pandos komandos, skirtos manipuliuoti duomenų rėmeliais
Sužinokite, kaip tai veikia, pavadinimo stulpelyje esančias nulines eilutes pakeisdami jo vidurkiu, mediana arba režimu:
importuoti pandas
importuoti numpy #tam reikia, kad anksčiau įdiegėte numpy
#Nulines reikšmes pakeiskite vidurkiu:
df['A'].replace([numpy.nan], df[A].mean(), inplace=True)
#Pakeiskite A stulpelį mediana:
df['B'].replace([numpy.nan], df[B].median(), inplace=True)
#Naudokite modalinę reikšmę C stulpelyje:
df['C'].replace([numpy.nan], df['C'].mode()[0], inplace=True)
spausdinti (df)
3. Užpildykite trūkstamus duomenis interpoliate ()
The interpoliuoti () funkcija naudoja esamas DataFrame reikšmes, kad įvertintų trūkstamas eilutes.
Paleiskite šį kodą, kad pamatytumėte, kaip tai veikia:
#Interpoliuoti stulpelyje atgal:
df.interpolate (metodas ='linijinis', limit_direction ='atgal', inplace=True)
#Interpoliuoti pirmyn stulpelyje:
df.interpolate (metodas ='tiesinis', limit_direction ='pirmyn', inplace=True)
Atsargiai tvarkykite trūkstamas eilutes
Nors svarstėme tik galimybę užpildyti trūkstamus duomenis numatytosiomis reikšmėmis, pvz., vidurkiais, režimu ir kitais metodais, trūksta kitų metodų, kaip taisyti trūkstamas reikšmes. Pavyzdžiui, duomenų mokslininkai, priklausomai nuo atvejo, kartais pašalina šias trūkstamas eilutes.
Be to, prieš naudojant strategiją būtina kritiškai apgalvoti savo strategiją. Priešingu atveju galite gauti nepageidaujamų analizės ar numatymo rezultatų. Kai kurios pradinės duomenų vizualizavimo strategijos gali padėti.
Rodykite savo duomenis naudodami Jupyter Notebook diagramas.
Skaitykite toliau
- Programavimas
- Python
- Programavimas
- duomenų bazėje

Idowu aistringai vertina viską, kas yra išmanioji technologija ir produktyvumas. Laisvalaikiu jis žaidžia koduodamas ir, kai jam nuobodu, pereina prie šachmatų lentos, tačiau taip pat mėgsta retkarčiais atitrūkti nuo rutinos. Jo aistra parodyti žmonėms kelią apie šiuolaikines technologijas skatina jį rašyti daugiau.
Prenumeruokite mūsų naujienlaiškį
Prisijunkite prie mūsų naujienlaiškio, kad gautumėte techninių patarimų, apžvalgų, nemokamų el. knygų ir išskirtinių pasiūlymų!
Norėdami užsiprenumeruoti, spustelėkite čia