Pandy - Naprawianie błędnych danych


Złe dane

„Błędne dane” nie muszą być „pustymi komórkami” lub „niewłaściwym formatem”, może po prostu być błędne, tak jakby ktoś zarejestrował „199” zamiast „1.99”.

Czasami możesz wykryć nieprawidłowe dane, patrząc na zestaw danych, ponieważ masz oczekiwania, jakie powinny być.

Jeśli spojrzysz na nasz zestaw danych, zobaczysz, że w wierszu 7 czas trwania wynosi 450, ale dla wszystkich pozostałych wierszy czas trwania wynosi od 30 do 60.

Nie musi się to mylić, ale biorąc pod uwagę, że jest to zestaw danych z czyichś sesji treningowych, wnioskujemy z tego, że ta osoba nie trenowała w 450 minut.

      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

Jak możemy naprawić nieprawidłowe wartości, takie jak „Czas trwania” w wierszu 7?


w3schools CERTIFIED . 2021

Zostać certyfikowanym!

Wypełnij moduły Pandy, wykonaj ćwiczenia, podejdź do egzaminu, a uzyskasz certyfikat w3schools!

ZAPISZ 10 USD

Zastępowanie wartości

Jednym ze sposobów naprawienia błędnych wartości jest zastąpienie ich czymś innym.

W naszym przykładzie najprawdopodobniej jest to literówka, a wartość powinna wynosić „45” zamiast „450”, a my moglibyśmy po prostu wstawić „45” w wierszu 7:

Przykład

Ustaw „Czas trwania” = 45 w wierszu 7:

df.loc[7, 'Duration'] = 45

W przypadku małych zestawów danych może być możliwe zastąpienie niewłaściwych danych jeden po drugim, ale nie w przypadku dużych zestawów danych.

Aby zastąpić nieprawidłowe dane dla większych zbiorów danych, możesz utworzyć pewne reguły, np. ustawić pewne granice dla wartości legalnych i zastąpić wszystkie wartości, które znajdują się poza granicami.

Przykład

Przejrzyj wszystkie wartości w kolumnie „Czas trwania”.

Jeśli wartość jest wyższa niż 120, ustaw ją na 120:

for x in df.index:
  if df.loc[x, "Duration"] > 120:
    df.loc[x, "Duration"] = 120

Usuwanie wierszy

Innym sposobem obsługi błędnych danych jest usuwanie wierszy zawierających nieprawidłowe dane.

W ten sposób nie musisz się zastanawiać, czym je zastąpić, a istnieje duża szansa, że ​​nie potrzebujesz ich do analiz.

Przykład

Usuń wiersze, w których „Czas trwania” jest wyższy niż 120:

for x in df.index:
  if df.loc[x, "Duration"] > 120:
    df.drop(x, inplace = True)