簡體   English   中英

Dataframe 僅當它出現在每行的多個列上時才刪除異常值 Python

[英]Dataframe Outlier removal only if it appears on multiple columns for each row Python

我有一個 DataFrame 有多個列,我想過濾每行至少有 3 列或更多列的異常值的所有行 我怎樣才能做到這一點?

我使用了以下dataframe過濾方法:

df[df.apply(lambda x: np.abs(x - x.mean()) / x.std() < 3).all(axis=1)

但由於.all() function,即使只有單列具有異常值,它也會過濾行。

我們可以得到行上的布爾值和 select > 3的總和:

m = (df - df.mean()).abs().div(df.std()) < 3
df[m.sum(axis=1) > 3]

注意:我們不需要在這里申請。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM