Почистването на данни несъмнено отнема много време в науката за данни, а липсващите данни са едно от предизвикателствата, с които ще се сблъскате често. pandas е ценен инструмент за манипулиране на данни на Python, който ви помага да коригирате липсващи стойности във вашия набор от данни, наред с други неща.

Можете да коригирате липсващите данни, като ги пуснете или попълните с други стойности. В тази статия ще обясним и проучим различните начини за попълване на липсващи данни с помощта на панди.

1. Използвайте метода fillna():

В fillna() функцията итерира през вашия набор от данни и запълва всички нулеви редове с определена стойност. Той приема някои незадължителни аргументи - обърнете внимание на следните:

Стойност: Това е стойността, която искате да вмъкнете в липсващите редове.

Метод: Позволява ви да попълните липсващите стойности напред или назад. Приема а 'bfill' или 'пълня' параметър.

На място: Това приема условно изявление. Ако е вярно, той променя DataFrame за постоянно. В противен случай не става.

instagram viewer

Преди да започнем, уверете се, че сте инсталирали панди във вашия Виртуална среда на Python използвайки пип във вашия терминал:

pip install pandas

След това, вътре в скрипта на Python, ще създадем практически DataFrame и ще вмъкнем нулеви стойности (Нан) на няколко реда:

внос на панди
df = панди. DataFrame({'A' :[0, 3, Няма, 10, 3, Няма],
'B': [Няма, Няма, 7.13, 13.82, 7, 7],
'C': [Няма, "Панди", Няма, "Панди", "Python", "JavaScript"]})

Свързани:Как да импортирате данни от Excel в скриптове на Python с помощта на Pandas

Сега вижте как можете да попълните тези липсващи стойности, като използвате различните налични методи в pandas.

Този метод включва замяна на липсващи стойности с изчислени средни. Попълването на липсващи данни със средна или средна стойност е приложимо, когато участващите колони имат целочислени или плаващи типове данни.

Можете също да попълните липсващите данни със стойността на режима, която е най-често срещаната стойност. Това е приложимо и за цели числа или плаващи числа. Но е по-удобно, когато въпросните колони съдържат низове.

Ето как да вмъкнете средната и медианата в липсващите редове в DataFrame, който сте създали по-рано:

#За да вмъкнете средната стойност на всяка колона в липсващите й редове:
df.fillna (df.mean().round (1), inplace=True)
#За медиана:
df.fillna (df.median().round (1), inplace=True)
печат (df)

Вмъкването на модалната стойност, както направихте за средната и медианата по-горе, не улавя целия DataFrame. Но можете да го вмъкнете в конкретна колона вместо, да речем, колона ° С:

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

Като се има предвид това, все още е възможно да се вмъкне модалната стойност на всяка колона в липсващите й редове наведнъж с помощта на цикъл for:

за i в df.columns:
df[i].fillna (df[i].mode()[0], inplace=True)
печат (df)

Ако искате да бъдете специфични за колоните, докато вмъквате средната стойност, медианата или режима:

df.fillna({"A":df['A'].mean(), 
"B": df['B'].median(),
"C": df['C'].mode()[0]},
inplace=Вярно)
печат (df)

Попълнете нулеви редове със стойности, като използвате ffill

Това включва посочване на метода на запълване вътре като fillna() функция. Този метод запълва всеки липсващ ред със стойността на най-близкия над него.

Можете също да го наречете попълване напред:

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

Попълнете липсващите редове със стойности, като използвате bfill

Тук ще замените пълни метод, споменат по-горе с bfill. Той запълва всеки липсващ ред в DataFrame с най-близката стойност под него.

Това се нарича обратно запълване:

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

2. Методът replace().

Можете да замените Нан стойности в конкретна колона със средна стойност, медиана, режим или всяка друга стойност.

Свързани:pandas Команди за манипулиране на DataFrame

Вижте как работи това, като замените нулевите редове в колона с име с нейната средна стойност, медиана или режим:

внос на панди
импортирайте numpy #това изисква предварително да сте инсталирали numpy
#Заменете нулевите стойности със средната стойност:
df['A'].replace([numpy.nan], df[A].mean(), inplace=True)
#Заменете колона А с медиана:
df['B'].replace([numpy.nan], df[B].median(), inplace=True)
#Използвайте модалната стойност за колона C:
df['C'].replace([numpy.nan], df['C'].mode()[0], inplace=True)
печат (df)

3. Попълнете липсващите данни с interpolate()

В интерполирам() функцията използва съществуващи стойности в DataFrame, за да оцени липсващите редове.

Изпълнете следния код, за да видите как работи това:

#Интерполирайте назад през колоната:
df.interpolate (method ='linear', limit_direction ='backward', inplace=True)
#Интерполирайте в преден ред в колоната:
df.interpolate (method ='linear', limit_direction ='forward', inplace=True)

Справете се внимателно с липсващите редове

Въпреки че обмисляхме само попълване на липсващи данни със стойности по подразбиране като средни стойности, режим и други методи, съществуват други техники за коригиране на липсващи стойности. Учените по данни, например, понякога премахват тези липсващи редове, в зависимост от случая.

Освен това е важно да мислите критично за вашата стратегия, преди да я използвате. В противен случай може да получите нежелани резултати от анализ или прогнозиране. Някои стратегии за визуализация на първоначалните данни могат да помогнат.

Как да рисувате графики в Jupyter Notebook

Покажете вашите данни с графики на Jupyter Notebook.

Прочетете Следващото

Дялтуителектронна поща
Свързани теми
  • Програмиране
  • Python
  • Програмиране
  • база данни
За автора
Идову Омисола (публикувани 125 статии)

Idowu е страстен за всичко, което е интелигентна технология и производителност. В свободното си време той играе наоколо с кодирането и преминава към шахматната дъска, когато му е скучно, но също така обича да се откъсва от рутината от време на време. Страстта му да показва на хората пътя около съвременните технологии го мотивира да пише повече.

Още от Idowu Omisola

Абонирайте се за нашия бюлетин

Присъединете се към нашия бюлетин за технически съвети, ревюта, безплатни електронни книги и ексклузивни оферти!

Щракнете тук, за да се абонирате