私は50の異なる値と数値の列 "値"を持つことができる "グループ"という列を持つデータフレームを持っています。Zscoreによってグループごとにパンダの異常をフィルタリングする
例は次のようになります。
pd.DataFrame({'group':['a','b','c','a','a','b','a','c','c'],'value':[2,123,4,2.3,2.5,127,128,4,0.003]})
group value
0 a 2.000
1 b 123.000
2 c 4.000
3 a 2.300
4 a 2.500
5 b 127.000
6 a 128.000
7 c 4.000
8 c 0.003
Iは、例えば、ABS(zscore)> 3またはそのような何かのために、データフレームから自分のグループのために異常な値を削除したいと思います。この例では、値a、128はグループaに異常であり、値c、0.003も削除されるため削除されます。それらのグループが "b"であるため、123と127は正常です。
出力(Zスコア欄付き)のようなものでなければなりません。これを行うための効率的な方法だろう
group value
0 a 2.0
1 b 123.0
2 c 4.0
3 a 2.3
4 a 2.5
5 b 127.0
6 c 4.0
何?
ありがとうございます!
?あなたの希望する出力の具体的な証拠を提供してください。 –
各グループの値としてzscoreを指定し、zscoreがあるしきい値を超えているレコードをフィルタリングします。 Tx。 – user3635284
zスコアには仮説検定が必要です。あなたの帰無仮説は何ですか? – hausdork