Pandas - Korrigieren falscher Daten
Falschen Daten
„Falsche Daten“ müssen nicht „leere Zellen“ oder „falsches Format“ sein, es kann einfach falsch sein, etwa wenn jemand „199“ statt „1,99“ eingetragen hat.
Manchmal können Sie falsche Daten erkennen, indem Sie sich den Datensatz ansehen, weil Sie eine Erwartung haben, was er sein sollte.
Wenn Sie sich unseren Datensatz ansehen, können Sie sehen, dass in Zeile 7 die Dauer 450 beträgt, aber für alle anderen Zeilen die Dauer zwischen 30 und 60 liegt.
Es muss nicht falsch sein, aber wenn man bedenkt, dass dies der Datensatz der Trainingseinheiten von jemandem ist, schließen wir daraus, dass diese Person in 450 Minuten nicht trainiert hat.
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
Wie können wir falsche Werte korrigieren, wie den für "Dauer" in Zeile 7?
Zertifiziert werden!
$10 REGISTRIEREN
Werte ersetzen
Eine Möglichkeit, falsche Werte zu korrigieren, besteht darin, sie durch etwas anderes zu ersetzen.
In unserem Beispiel handelt es sich höchstwahrscheinlich um einen Tippfehler, und der Wert sollte "45" statt "450" lauten, und wir könnten einfach "45" in Zeile 7 einfügen:
Beispiel
Setzen Sie "Dauer" = 45 in Zeile 7:
df.loc[7, 'Duration'] = 45
Bei kleinen Datensätzen können Sie möglicherweise die falschen Daten einzeln ersetzen, bei großen Datensätzen jedoch nicht.
Um falsche Daten für größere Datensätze zu ersetzen, können Sie einige Regeln erstellen, z. B. einige Grenzen für gültige Werte festlegen und alle Werte ersetzen, die außerhalb der Grenzen liegen.
Beispiel
Schleifen Sie alle Werte in der Spalte „Dauer“ durch.
Wenn der Wert höher als 120 ist, setzen Sie ihn auf 120:
for x in df.index:
if df.loc[x, "Duration"] > 120:
df.loc[x, "Duration"] = 120
Zeilen entfernen
Eine andere Möglichkeit, mit falschen Daten umzugehen, besteht darin, die Zeilen zu entfernen, die falsche Daten enthalten.
Auf diese Weise müssen Sie nicht herausfinden, wodurch Sie sie ersetzen, und es besteht eine gute Chance, dass Sie sie für Ihre Analysen nicht benötigen.
Beispiel
Löschen Sie Zeilen, bei denen "Dauer" größer als 120 ist:
for x in df.index:
if df.loc[x, "Duration"] > 120:
df.drop(x, inplace = True)