IQR(つまり、Q1-1.5IQRとQ3 + 1.5IQRの間の値)で列のフィルタリングを行う方法はありますか? また、パンダの他の可能性のある一般化されたフィルタリングが示唆されています。パンダのIQRフィルターの使い方は?
8
A
答えて
13
私が知る限り、最もコンパクトな表記法は、query
メソッドによってもたらされるようです。
# Some test data
np.random.seed(33454)
df = (
# A standard distribution
pd.DataFrame({'nb': np.random.randint(0, 100, 20)})
# Adding some outliers
.append(pd.DataFrame({'nb': np.random.randint(100, 200, 2)}))
# Reseting the index
.reset_index(drop=True)
)
# Computing IQR
Q1 = df['nb'].quantile(0.25)
Q3 = df['nb'].quantile(0.75)
IQR = Q3 - Q1
# Filtering Values between Q1-1.5IQR and Q3+1.5IQR
filtered = df.query('(@Q1 - 1.5 * @IQR) <= nb <= (@Q3 + 1.5 * @IQR)')
次に、結果をプロットして違いを確認することができます。左のボックスプロット(183の十字)の外れ値は、フィルタリングされたシリーズにはもう表示されません。
# Ploting the result to check the difference
df.join(filtered, rsuffix='_filtered').boxplot()
私はこのトピックに関するpostを書いたこの答えは、あなたがより多くの情報を見つけることができたので。
1
これはあなたのコラムcolumn
のIQRにあるdf
のサブセットを提供します:
def get_subset_by_IQR(df,column):
q1 = df[column].quantile(0.25)
q3 = df[column].quantile(0.75)
iqr = (df[column] > q1) & (df[column] < q3)
return df.loc[iqr]
2
Series.betweenを使用して別のアプローチ():
iqr = df['col'][df['col'].between(df['col'].quantile(.25), df['col'].quantile(.75), inclusive=True)]
引き出された:
をq1 = df['col'].quantile(.25)
q2 = df['col'].quantile(.75)
mask = d['col'].between(q1, q2, inclusive=True)
iqr = d.loc[mask, 'col']
関連する問題
- 1. lodashフィルターの使い方は?
- 2. フィルターの使い方は?
- 3. フィルターの使い方は?
- 4. 角フィルターの使い方
- 5. パンダDataFrame.styleの使い方は?
- 6. パンダ:LocIndexerの使い方は?
- 7. PycharmのMongoDBのフィルター機能の使い方は?
- 8. ggplot - IQRを使ってボックスプロットを塗りつぶす
- 9. groupbyデータでIQRを取得しようとしています
- 10. symfonyのフィルターは
- 11. フィルターLINQのは
- 12. カスタムカメラのフィルターは
- 13. C#フィルターの違い
- 14. LEFTテーブルのフィルターを使用してLEFT JOINする方法は?
- 15. 方法上のEloquentフィルター
- 16. パンダの "flag"の使用方法
- 17. リストを入力する際に、フィルターのスペースでフィルターをかける方法は?
- 18. はフィルター
- 19. Angularjsフィルター - その後のフィルターが機能しない
- 20. パンダはパンダのデータフレームの列
- 21. フィルターと還元の違いは?
- 22. symfony2の別のフィルターの小枝の中でフィルターを使用する
- 23. Pythonのパンダは、私はパンダを使用する値
- 24. フィルターのモルフィアでのクエリーの書き方
- 25. python-colormathのDelta E関数とパンダの使い方
- 26. テーブルでのスライサー/フィルターの使用
- 27. 使用パンダはインプレース
- 28. は、私はパンダのデータフレームを持っているパンダのデータフレーム
- 29. パンダはパンダのデータフレームに「NA」
- 30. Struts1アプリケーションでフィルターを使用する方法は?