Datarensning tager utvivlsomt masser af tid inden for datavidenskab, og manglende data er en af de udfordringer, du ofte vil møde. pandas er et værdifuldt Python-datamanipulationsværktøj, der blandt andet hjælper dig med at rette manglende værdier i dit datasæt.
Du kan rette manglende data ved enten at droppe eller udfylde dem med andre værdier. I denne artikel vil vi forklare og udforske de forskellige måder at udfylde manglende data ved hjælp af pandaer.
1. Brug fillna() metoden:
Det fillna() funktion gentager dit datasæt og udfylder alle nulrækker med en specificeret værdi. Den accepterer nogle valgfrie argumenter – vær opmærksom på følgende:
Værdi: Dette er den værdi, du vil indsætte i de manglende rækker.
Metode: Lader dig udfylde manglende værdier fremad eller baglæns. Den accepterer en 'bfill' eller 'fyld' parameter.
På plads: Dette accepterer en betinget erklæring. Hvis True, ændrer den DataFrame permanent. Ellers gør det ikke.
Før vi starter, skal du sørge for at installere pandaer i din Python virtuelt miljø ved brug af pip i din terminal:
pip installer pandaer
Dernæst, inde i Python-scriptet, opretter vi en praksis DataFrame og indsætter null-værdier (Nan) i nogle rækker:
importere pandaer
df = pandaer. DataFrame({'A' :[0, 3, Ingen, 10, 3, Ingen],
'B': [Ingen, Ingen, 7.13, 13.82, 7, 7],
'C': [Ingen, "Pandas", Ingen, "Pandas", "Python", "JavaScript"]})
Relaterede:Sådan importeres Excel-data til Python-scripts ved hjælp af pandaer
Se nu, hvordan du kan udfylde disse manglende værdier ved hjælp af de forskellige tilgængelige metoder i pandaer.
Denne metode indebærer at erstatte manglende værdier med beregnede gennemsnit. At udfylde manglende data med en middelværdi eller medianværdi er anvendelig, når de involverede kolonner har heltal- eller flydende datatyper.
Du kan også udfylde manglende data med tilstandsværdien, som er den mest forekommende værdi. Dette gælder også for heltal eller flydere. Men det er mere praktisk, når de pågældende kolonner indeholder strenge.
Sådan indsætter du middelværdien og medianen i de manglende rækker i den DataFrame, du oprettede tidligere:
#Sådan indsætter du middelværdien af hver kolonne i dens manglende rækker:
df.fillna (df.mean().round (1), inplace=True)
#For median:
df.fillna (df.median().round (1), inplace=True)
print (df)
Indsættelse af den modale værdi, som du gjorde for middelværdien og medianen ovenfor, fanger ikke hele DataFrame. Men du kan indsætte det i en bestemt kolonne i stedet for, f.eks. kolonne C:
df['C'].fillna (df['C'].mode()[0], inplace=True)
Når det er sagt, er det stadig muligt at indsætte den modale værdi for hver kolonne på tværs af dens manglende rækker på én gang ved hjælp af en for-løkke:
for i i df.kolonner:
df[i].fillna (df[i].mode()[0], inplace=True)
print (df)
Hvis du vil være kolonnespecifik, mens du indsætter middelværdien, medianen eller tilstanden:
df.fillna({"A":df['A'].mean(),
"B": df['B'].median(),
"C": df['C'].mode()[0]},
inplace=True)
print (df)
Udfyld nullrækker med værdier ved hjælp af ffill
Dette indebærer at angive udfyldningsmetoden indeni som fillna() fungere. Denne metode udfylder hver manglende række med værdien af den nærmeste over sig.
Du kan også kalde det fremadfyldende:
df.fillna (method='ffill', inplace=True)
Udfyld manglende rækker med værdier ved hjælp af bfill
Her skal du erstatte udfylde metode nævnt ovenfor med bfill. Den udfylder hver manglende række i DataFrame med den nærmeste værdi under sig.
Denne kaldes bagudfyldning:
df.fillna (method='bfill', inplace=True)
2. Replace()-metoden
Du kan erstatte Nan værdier i en specifik kolonne med middelværdi, median, tilstand eller enhver anden værdi.
Relaterede:pandas kommandoer til at manipulere datarammer
Se, hvordan dette fungerer ved at erstatte nul-rækkerne i en navngivet kolonne med dens middelværdi, median eller tilstand:
importere pandaer
import numpy #dette kræver, at du tidligere har installeret numpy
#Erstat nulværdierne med middelværdien:
df['A'].replace([numpy.nan], df[A].mean(), inplace=True)
#Erstat kolonne A med medianen:
df['B'].replace([numpy.nan], df[B].median(), inplace=True)
#Brug den modale værdi for kolonne C:
df['C'].replace([numpy.nan], df['C'].mode()[0], inplace=True)
print (df)
3. Udfyld manglende data med interpolate()
Det interpolere() funktion bruger eksisterende værdier i DataFrame til at estimere de manglende rækker.
Kør følgende kode for at se, hvordan dette fungerer:
#Interpoler baglæns hen over kolonnen:
df.interpolate (metode ='lineær', limit_direction ='backward', inplace=True)
#Interpoler i fremadgående rækkefølge på tværs af kolonnen:
df.interpolate (metode ='lineær', limit_direction ='forward', inplace=True)
Håndter manglende rækker omhyggeligt
Selvom vi kun har overvejet at udfylde manglende data med standardværdier som gennemsnit, tilstand og andre metoder, findes der andre teknikker til at rette manglende værdier. Dataforskere fjerner f.eks. nogle gange disse manglende rækker, afhængigt af sagen.
Desuden er det vigtigt at tænke kritisk over din strategi, før du bruger den. Ellers kan du få uønskede analyse- eller forudsigelsesresultater. Nogle indledende datavisualiseringsstrategier kan hjælpe.
Vis dine data med Jupyter Notebook-grafer.
Læs Næste
- Programmering
- Python
- Programmering
- database
Idowu brænder for alt smart teknologi og produktivitet. I sin fritid leger han med kodning og skifter til skakbrættet, når han keder sig, men han elsker også at bryde ud af rutinen en gang imellem. Hans passion for at vise folk vejen rundt om moderne teknologi motiverer ham til at skrive mere.
Abonner på vores nyhedsbrev
Tilmeld dig vores nyhedsbrev for tekniske tips, anmeldelser, gratis e-bøger og eksklusive tilbud!
Klik her for at abonnere