Het opschonen van gegevens kost ongetwijfeld veel tijd in datawetenschap, en het missen van gegevens is een van de uitdagingen waarmee u vaak wordt geconfronteerd. pandas is een waardevolle Python-tool voor gegevensmanipulatie waarmee je onder andere ontbrekende waarden in je dataset kunt oplossen.
U kunt ontbrekende gegevens herstellen door ze weg te laten of te vullen met andere waarden. In dit artikel leggen we uit en onderzoeken we de verschillende manieren om ontbrekende gegevens aan te vullen met behulp van panda's.
1. Gebruik de fillna()-methode:
De vulna() functie doorloopt uw dataset en vult alle null-rijen met een opgegeven waarde. Het accepteert enkele optionele argumenten - let op de volgende:
Waarde: Dit is de waarde die u in de ontbrekende rijen wilt invoegen.
Methode: Hiermee kunt u ontbrekende waarden vooruit of achteruit invullen. Het accepteert een 'bfill' of 'fvul' parameter.
In situ: Hiermee accepteert u een voorwaardelijke verklaring. Indien True, wordt het DataFrame permanent gewijzigd. Anders niet.
Voordat we beginnen, zorg ervoor dat je panda's installeert in je Python virtuele omgeving gebruik makend van Pip in uw terminal:
pip installeer panda's
Vervolgens maken we in het Python-script een oefen-DataFrame en voegen we null-waarden in (Nan) in enkele rijen:
panda's importeren
df = panda's. DataFrame({'A' :[0, 3, Geen, 10, 3, Geen],
'B': [Geen, Geen, 7.13, 13.82, 7, 7],
'C': [Geen, "Panda's", Geen, "Panda's", "Python", "JavaScript"]})
Verwant:Excel-gegevens importeren in Python-scripts met behulp van Panda's
Bekijk nu hoe u deze ontbrekende waarden kunt invullen met behulp van de verschillende beschikbare methoden in panda's.
Bij deze methode worden ontbrekende waarden vervangen door berekende gemiddelden. Het invullen van ontbrekende gegevens met een gemiddelde of mediaanwaarde is van toepassing wanneer de betrokken kolommen integer- of float-gegevenstypen hebben.
U kunt ontbrekende gegevens ook vullen met de moduswaarde, de meest voorkomende waarde. Dit geldt ook voor gehele getallen of floats. Maar het is handiger als de betreffende kolommen strings bevatten.
U kunt als volgt het gemiddelde en de mediaan invoegen in de ontbrekende rijen in het DataFrame dat u eerder hebt gemaakt:
#Om de gemiddelde waarde van elke kolom in de ontbrekende rijen in te voegen:
df.fillna (df.mean().round (1), inplace=True)
#Voor mediaan:
df.fillna (df.median().round (1), inplace=True)
afdrukken (df)
Als u de modale waarde invoegt zoals u deed voor het gemiddelde en de mediaan hierboven, wordt niet het volledige DataFrame vastgelegd. Maar u kunt het in plaats daarvan in een specifieke kolom invoegen, bijvoorbeeld kolom C:
df['C'].fillna (df['C'].mode()[0], inplace=True)
Dat gezegd hebbende, is het nog steeds mogelijk om de modale waarde van elke kolom in één keer in de ontbrekende rijen in te voegen een for-lus gebruiken:
voor i in df.kolommen:
df[i].fillna (df[i].mode()[0], inplace=True)
afdrukken (df)
Als u kolomspecifiek wilt zijn bij het invoegen van het gemiddelde, de mediaan of de modus:
df.fillna({"A":df['A'].mean(),
"B": df['B'].mediaan(),
"C": df['C'].mode()[0]},
inplace=True)
afdrukken (df)
Vul null-rijen met waarden met behulp van ffill
Dit houdt in dat de vulmethode binnenin wordt gespecificeerd als de vulna() functie. Deze methode vult elke ontbrekende rij met de waarde van de dichtstbijzijnde erboven.
Je zou het ook vooruitvullend kunnen noemen:
df.fillna (methode='ffill', inplace=True)
Vul ontbrekende rijen met waarden met behulp van bfill
Hier vervang je de ffvul hierboven genoemde methode met bfill. Het vult elke ontbrekende rij in het DataFrame met de dichtstbijzijnde waarde eronder.
Deze wordt backward-filling genoemd:
df.fillna (methode='bfill', inplace=True)
2. De vervang() methode
U kunt de Nan waarden in een specifieke kolom met het gemiddelde, de mediaan, de modus of een andere waarde.
Verwant:pandas-opdrachten voor het manipuleren van dataframes
Bekijk hoe dit werkt door de null-rijen in een benoemde kolom te vervangen door het gemiddelde, de mediaan of de modus:
panda's importeren
import numpy #this vereist dat je numpy eerder hebt geïnstalleerd
#Vervang de null-waarden door het gemiddelde:
df['A'].replace([numpy.nan], df[A].mean(), inplace=True)
#Vervang kolom A door de mediaan:
df['B'].replace([numpy.nan], df[B].median(), inplace=True)
#Gebruik de modale waarde voor kolom C:
df['C'].replace([numpy.nan], df['C'].mode()[0], inplace=True)
afdrukken (df)
3. Vul ontbrekende gegevens in met interpolate()
De interpoleren() functie gebruikt bestaande waarden in het DataFrame om de ontbrekende rijen te schatten.
Voer de volgende code uit om te zien hoe dit werkt:
#Interpoleer achteruit over de kolom:
df.interpolate (methode ='lineair', limit_direction ='achteruit', inplace=True)
#Interpoleer in voorwaartse volgorde over de kolom:
df.interpolate (methode ='lineair', limit_direction ='forward', inplace=True)
Ga voorzichtig om met ontbrekende rijen
Hoewel we alleen hebben overwogen ontbrekende gegevens te vullen met standaardwaarden zoals gemiddelden, modus en andere methoden, bestaan er andere technieken om ontbrekende waarden te corrigeren. Datawetenschappers verwijderen bijvoorbeeld soms deze ontbrekende rijen, afhankelijk van het geval.
Bovendien is het essentieel om kritisch na te denken over uw strategie voordat u deze toepast. Anders kunt u ongewenste analyse- of voorspellingsresultaten krijgen. Sommige initiële strategieën voor gegevensvisualisatie kunnen helpen.
Geef uw gegevens weer met Jupyter Notebook-grafieken.
Lees volgende
- Programmeren
- Python
- Programmeren
- database
Idowu is gepassioneerd door alles wat slimme technologie en productiviteit betreft. In zijn vrije tijd speelt hij met coderen en schakelt hij over naar het schaakbord als hij zich verveelt, maar hij vindt het ook heerlijk om af en toe uit de routine te stappen. Zijn passie om mensen de weg te wijzen in moderne technologie motiveert hem om meer te schrijven.
Abonneer op onze nieuwsbrief
Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!
Klik hier om je te abonneren