Datarensning tar utan tvekan massor av tid inom datavetenskap, och saknad data är en av de utmaningar du ofta kommer att möta. pandas är ett värdefullt Python-datamanipuleringsverktyg som bland annat hjälper dig att fixa saknade värden i din datauppsättning.

Du kan åtgärda saknade data genom att antingen släppa eller fylla dem med andra värden. I den här artikeln kommer vi att förklara och utforska de olika sätten att fylla på saknad data med hjälp av pandor.

1. Använd metoden fillna():

De fyllna() funktion itererar genom din datauppsättning och fyller alla nullrader med ett angivet värde. Den accepterar några valfria argument – ​​notera följande:

Värde: Detta är värdet du vill infoga i de saknade raderna.

Metod: Låter dig fylla saknade värden framåt eller bakåt. Den accepterar en 'bfill' eller 'fylla' parameter.

På plats: Detta accepterar ett villkorligt uttalande. Om det är sant, ändras DataFrame permanent. Annars gör det inte det.

Innan vi börjar, se till att du installerar pandor i din Python virtuell miljö använder sig av pip i din terminal:

instagram viewer
pip installera pandor

Därefter, inuti Python-skriptet, skapar vi en övningsdataram och infogar null-värden (Nan) i några rader:

importera pandor
df = pandor. DataFrame({'A' :[0, 3, None, 10, 3, None],
'B': [Ingen, Ingen, 7.13, 13.82, 7, 7],
'C': [Inga, "Pandas", Inga, "Pandas", "Python", "JavaScript"]})

Relaterad:Hur man importerar Excel-data till Python-skript med pandor

Kolla nu in hur du kan fylla dessa saknade värden med de olika tillgängliga metoderna i pandor.

Denna metod innebär att saknade värden ersätts med beräknade medelvärden. Att fylla i saknade data med ett medelvärde eller medianvärde är tillämpligt när de involverade kolumnerna har heltals- eller flytdatatyper.

Du kan också fylla i saknade data med lägesvärdet, vilket är det mest förekommande värdet. Detta gäller även heltal eller flytande tal. Men det är smidigare när kolumnerna i fråga innehåller strängar.

Så här infogar du medelvärdet och medianen i de saknade raderna i DataFrame som du skapade tidigare:

#Så här infogar du medelvärdet för varje kolumn i de rader som saknas:
df.fillna (df.mean().round (1), inplace=True)
#För median:
df.fillna (df.median().round (1), inplace=True)
print (df)

Att infoga det modala värdet som du gjorde för medelvärdet och medianen ovan fångar inte hela DataFrame. Men du kan infoga den i en specifik kolumn istället, säg kolumn C:

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

Med det sagt är det fortfarande möjligt att infoga det modala värdet för varje kolumn över dess saknade rader på en gång använder en for-loop:

för i i df.columns:
df[i].fillna (df[i].mode()[0], inplace=True)
print (df)

Om du vill vara kolumnspecifik när du infogar medelvärde, median eller läge:

df.fillna({"A":df['A'].mean(), 
"B": df['B'].median(),
"C": df['C'].mode()[0]},
inplace=True)
print (df)

Fyll nullrader med värden med ffill

Detta innebär att ange fyllningsmetoden inuti som fyllna() fungera. Denna metod fyller varje saknad rad med värdet av den närmaste ovanför den.

Du kan också kalla det framåtfyllande:

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

Fyll saknade rader med värden med bfill

Här kommer du att ersätta fylla ovan nämnda metod med bfill. Den fyller varje saknad rad i DataFrame med närmaste värde under sig.

Den här kallas bakåtfyllning:

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

2. Metoden replace()

Du kan byta ut Nan värden i en specifik kolumn med medelvärde, median, läge eller något annat värde.

Relaterad:pandas kommandon för att manipulera dataramar

Se hur detta fungerar genom att ersätta nollraderna i en namngiven kolumn med dess medelvärde, median eller läge:

importera pandor
importera numpy #detta kräver att du tidigare har installerat numpy
#Ersätt nollvärdena med medelvärdet:
df['A'].replace([numpy.nan], df[A].mean(), inplace=True)
#Ersätt kolumn A med medianen:
df['B'].replace([numpy.nan], df[B].median(), inplace=True)
#Använd det modala värdet för kolumn C:
df['C'].replace([numpy.nan], df['C'].mode()[0], inplace=True)
print (df)

3. Fyll saknade data med interpolate()

De interpolera() funktionen använder befintliga värden i DataFrame för att uppskatta de saknade raderna.

Kör följande kod för att se hur detta fungerar:

#Interpolera bakåt över kolumnen:
df.interpolate (metod ='linjär', limit_direction ='bakåt', inplace=True)
#Interpolera i framåtriktad ordning över kolumnen:
df.interpolate (metod ='linjär', limit_direction ='framåt', inplace=True)

Hantera saknade rader försiktigt

Även om vi bara har övervägt att fylla saknade data med standardvärden som medelvärden, läge och andra metoder, finns det andra tekniker för att fixa saknade värden. Dataforskare, till exempel, tar ibland bort dessa saknade rader, beroende på fallet.

Dessutom är det viktigt att tänka kritiskt på din strategi innan du använder den. Annars kan du få oönskade analys- eller förutsägelseresultat. Vissa initiala datavisualiseringsstrategier kan hjälpa.

Hur man ritar grafer i Jupyter Notebook

Visa dina data med Jupyter Notebook-grafer.

Läs Nästa

Dela med sigTweetE-post
Relaterade ämnen
  • Programmering
  • Pytonorm
  • Programmering
  • databas
Om författaren
Idowu Omisola (125 artiklar publicerade)

Idowu brinner för allt smart teknik och produktivitet. På fritiden leker han med kodning och byter till schackbrädet när han har tråkigt, men han älskar också att bryta sig loss från rutinen då och då. Hans passion för att visa människor vägen runt modern teknik motiverar honom att skriva mer.

Mer från Idowu Omisola

Prenumerera på vårt nyhetsbrev

Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e-böcker och exklusiva erbjudanden!

Klicka här för att prenumerera