パンダ-間違ったデータの修正
間違ったデータ
「間違ったデータ」は「空のセル」や「間違ったフォーマット」である必要はありません。誰かが「1.99」ではなく「199」を登録した場合のように、間違っている可能性があります。
データセットを確認することで、間違ったデータを見つけることができる場合があります。これは、データセットがどうあるべきかを期待しているためです。
データセットを見ると、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行目の「Duration」のような間違った値を修正するにはどうすればよいですか?
値の置き換え
間違った値を修正する1つの方法は、それらを別のものに置き換えることです。
この例では、タイプミスである可能性が高く、値は「450」ではなく「45」である必要があり、行7に「45」を挿入するだけで済みます。
例
行7で「Duration」= 45に設定します。
df.loc[7, 'Duration'] = 45
小さなデータセットの場合、間違ったデータを1つずつ置き換えることができる場合がありますが、ビッグデータセットの場合はできません。
より大きなデータセットの間違ったデータを置き換えるには、いくつかのルールを作成できます。たとえば、有効な値の境界を設定し、境界の外側にある値を置き換えます。
例
[期間]列のすべての値をループします。
値が120より大きい場合は、120に設定します。
for x in df.index:
if df.loc[x, "Duration"] > 120:
df.loc[x, "Duration"] = 120
行の削除
間違ったデータを処理する別の方法は、間違ったデータを含む行を削除することです。
このようにして、それらを何に置き換えるかを見つける必要がなく、分析を行うためにそれらを必要としない可能性が高くなります。
例
「Duration」が120より大きい行を削除します。
for x in df.index:
if df.loc[x, "Duration"] > 120:
df.drop(x, inplace = True)