Pandas - Maak leë selle skoon
Leë selle
Leë selle kan moontlik vir jou 'n verkeerde resultaat gee wanneer jy data ontleed.
Verwyder rye
Een manier om leë selle te hanteer, is om rye wat leë selle bevat, te verwyder.
Dit is gewoonlik in orde, aangesien datastelle baie groot kan wees, en die verwydering van 'n paar rye sal nie 'n groot impak op die resultaat hê nie.
Voorbeeld
Stuur 'n nuwe dataraam sonder leë selle:
import pandas as pd
df = pd.read_csv('data.csv')
new_df = df.dropna()
print(new_df.to_string())
In ons skoonmaakvoorbeelde sal ons 'n CSV-lêer genaamd 'dirtydata.csv' gebruik.
Laai dirtydata.csv af . of Maak dirtydata.csv oop
Let wel: By verstek gee die dropna()
metode 'n nuwe DataFrame terug, en sal nie die oorspronklike verander nie.
As jy die oorspronklike DataFrame wil verander, gebruik die
inplace = True
argument:
Voorbeeld
Verwyder alle rye met NULL-waardes:
import pandas as pd
df = pd.read_csv('data.csv')
df.dropna(inplace = True)
print(df.to_string())
Let wel: Nou dropna(inplace = True)
sal dit NIE 'n nuwe DataFrame terugstuur nie, maar dit sal alle rye wat NULL-waardes bevat van die oorspronklike DataFrame verwyder.
Vervang leë waardes
Nog 'n manier om leë selle te hanteer, is om eerder 'n nuwe waarde in te voeg.
Op hierdie manier hoef jy nie hele rye uit te vee net as gevolg van sommige leë selle nie.
Die fillna()
metode stel ons in staat om leë selle te vervang met 'n waarde:
Voorbeeld
Vervang NULL-waardes met die getal 130:
import pandas as pd
df = pd.read_csv('data.csv')
df.fillna(130, inplace = True)
Vervang slegs vir gespesifiseerde kolomme
Die voorbeeld hierbo vervang alle leë selle in die hele dataraam.
Om slegs leë waardes vir een kolom te vervang, spesifiseer die kolomnaam vir die DataFrame:
Voorbeeld
Vervang NULL-waardes in die "Kalorieë"-kolomme met die nommer 130:
import pandas as pd
df = pd.read_csv('data.csv')
df["Calories"].fillna(130, inplace = True)
Word gesertifiseer!
R10 INSKRYF
Vervang deur gemiddelde, mediaan of modus te gebruik
'n Algemene manier om leë selle te vervang, is om die gemiddelde, mediaan of moduswaarde van die kolom te bereken.
Pandas gebruik die mean()
median()
en mode()
metodes om die onderskeie waardes vir 'n gespesifiseerde kolom te bereken:
Voorbeeld
Bereken die GEMIDDELDE en vervang enige leë waardes daarmee:
import pandas as pd
df = pd.read_csv('data.csv')
x = df["Calories"].mean()
df["Calories"].fillna(x, inplace = True)
Gemiddeld = die gemiddelde waarde (die som van alle waardes gedeel deur die aantal waardes).
Voorbeeld
Bereken die MEDIAN, en vervang enige leë waardes daarmee:
import pandas as pd
df = pd.read_csv('data.csv')
x = df["Calories"].median()
df["Calories"].fillna(x, inplace = True)
Mediaan = die waarde in die middel, nadat jy alle waardes stygend gesorteer het.
Voorbeeld
Bereken die MODE, en vervang enige leë waardes daarmee:
import pandas as pd
df = pd.read_csv('data.csv')
x = df["Calories"].mode()[0]
df["Calories"].fillna(x, inplace = True)
Modus = die waarde wat die meeste verskyn.