Панды — исправление неправильных данных


Неверные данные

«Неправильные данные» не обязательно должны быть «пустыми ячейками» или «неправильным форматом», они могут быть просто неверными, например, если кто-то зарегистрировал «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?


w3schools CERTIFIED . 2021

Получите сертификат!

Завершите модули Pandas, выполните упражнения, сдайте экзамен, и вы получите сертификат w3schools!

ЗАРЕГИСТРИРОВАТЬСЯ НА 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)