Pandas - Regstelling van verkeerde data
Verkeerde data
"Verkeerde data" hoef nie "leë selle" of "verkeerde formaat" te wees nie, dit kan net verkeerd wees, soos as iemand "199" in plaas van "1.99" geregistreer het.
Soms kan jy verkeerde data raaksien deur na die datastel te kyk, want jy het 'n verwagting van wat dit moet wees.
As jy na ons datastel kyk, kan jy sien dat die tydsduur in ry 7 450 is, maar vir al die ander rye is die tydsduur tussen 30 en 60.
Dit hoef nie verkeerd te wees nie, maar as in ag geneem word dat dit die datastel van iemand se oefensessies is, sluit ons af met die feit dat hierdie persoon nie binne 450 minute uitgewerk het nie.
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
Hoe kan ons verkeerde waardes regmaak, soos die een vir "Duration" in ry 7?
Word gesertifiseer!
R10 INSKRYF
Waardes vervang
Een manier om verkeerde waardes reg te stel, is om dit met iets anders te vervang.
In ons voorbeeld is dit heel waarskynlik 'n tikfout, en die waarde moet "45" wees in plaas van "450", en ons kan net "45" in ry 7 invoeg:
Voorbeeld
Stel "Duration" = 45 in ry 7:
df.loc[7, 'Duration'] = 45
Vir klein datastelle kan jy dalk die verkeerde data een vir een vervang, maar nie vir groot datastelle nie.
Om verkeerde data vir groter datastelle te vervang, kan jy 'n paar reëls skep, bv. stel 'n paar grense vir wetlike waardes, en vervang enige waardes wat buite die grense is.
Voorbeeld
Loop deur alle waardes in die "Duration"-kolom.
As die waarde hoër as 120 is, stel dit op 120:
for x in df.index:
if df.loc[x, "Duration"] > 120:
df.loc[x, "Duration"] = 120
Verwyder rye
Nog 'n manier om verkeerde data te hanteer, is om die rye wat verkeerde data bevat, te verwyder.
Op hierdie manier hoef jy nie uit te vind waarmee om hulle te vervang nie, en die kans is groot dat jy hulle nie nodig het om jou ontledings te doen nie.
Voorbeeld
Vee rye uit waar "Duration" hoër as 120 is:
for x in df.index:
if df.loc[x, "Duration"] > 120:
df.drop(x, inplace = True)