Панды — исправление неправильных данных
Неверные данные
«Неправильные данные» не обязательно должны быть «пустыми ячейками» или «неправильным форматом», они могут быть просто неверными, например, если кто-то зарегистрировал «199» вместо «1,99».
Иногда вы можете определить неправильные данные, просмотрев набор данных, потому что у вас есть представление о том, каким он должен быть.
Если вы посмотрите на наш набор данных, вы увидите, что в строке 7 продолжительность составляет 450, но для всех остальных строк продолжительность составляет от 30 до 60.
Не обязательно ошибаться, но учитывая, что это набор данных о чьих-то тренировках, делаем вывод, что этот человек не тренировался за 450 минут.
Duration Date Pulse Maxpulse Calories
0 60 '2020/12/01' 110 130 409.1
1 60 '2020/12/02' 117 145 479.0
2 60 '2020/12/03' 103 135 340.0
3 45 '2020/12/04' 109 175 282.4
4 45 '2020/12/05' 117 148 406.0
5 60 '2020/12/06' 102 127 300.0
6 60 '2020/12/07' 110 136 374.0
7 450 '2020/12/08' 104 134 253.3
8 30 '2020/12/09' 109 133 195.1
9 60 '2020/12/10' 98 124 269.0
10 60 '2020/12/11' 103 147 329.3
11 60 '2020/12/12' 100 120 250.7
12 60 '2020/12/12' 100 120 250.7
13 60 '2020/12/13' 106 128 345.3
14 60 '2020/12/14' 104 132 379.3
15 60 '2020/12/15' 98 123 275.0
16 60 '2020/12/16' 98 120 215.2
17 60 '2020/12/17' 100 120 300.0
18 45 '2020/12/18' 90 112 NaN
19 60 '2020/12/19' 103 123 323.0
20 45 '2020/12/20' 97 125 243.0
21 60 '2020/12/21' 108 131 364.2
22 45 NaN 100 119 282.0
23 60 '2020/12/23' 130 101 300.0
24 45 '2020/12/24' 105 132 246.0
25 60 '2020/12/25' 102 126 334.5
26 60 20201226 100 120 250.0
27 60 '2020/12/27' 92 118 241.0
28 60 '2020/12/28' 103 132 NaN
29 60 '2020/12/29' 100 132 280.0
30 60 '2020/12/30' 102 129 380.3
31 60 '2020/12/31' 92 115 243.0
Как мы можем исправить неправильные значения, например, для «Длительности» в строке 7?
Получите сертификат!
ЗАРЕГИСТРИРОВАТЬСЯ НА 10 $
Замена значений
Один из способов исправить неправильные значения — заменить их чем-то другим.
В нашем примере, скорее всего, опечатка, и значение должно быть «45» вместо «450», и мы могли бы просто вставить «45» в строку 7:
Пример
Установите «Длительность» = 45 в строке 7:
df.loc[7, 'Duration'] = 45
Для небольших наборов данных вы можете заменить неправильные данные один за другим, но не для больших наборов данных.
Чтобы заменить неправильные данные большими наборами данных, вы можете создать некоторые правила, например, установить некоторые границы для разрешенных значений и заменить любые значения, выходящие за эти границы.
Пример
Перебрать все значения в столбце «Длительность».
Если значение выше 120, установите его на 120:
for x in df.index:
if df.loc[x, "Duration"] > 120:
df.loc[x, "Duration"] = 120
Удаление строк
Другой способ обработки неправильных данных — удаление строк, содержащих неверные данные.
Таким образом, вам не нужно выяснять, чем их заменить, и есть большая вероятность, что они вам не понадобятся для проведения анализа.
Пример
Удалите строки, где «Длительность» больше 120:
for x in df.index:
if df.loc[x, "Duration"] > 120:
df.drop(x, inplace = True)