[英]Create a new dataframe by removing the outliers from the column
我正在努力刪除離群值教程,但是當這個循環不能正常工作時,我很困惑:
target = df['ConvertedComp']
mean = target.mean()
sd = target.std()
for x in target:
z_score = (x-mean)/sd
if np.abs(z_score) > 3:
selected_df = df[df.ConvertedComp != x]
還有其他方法可以有效地創建沒有異常值的新 dataframe 嗎? 謝謝你。 希望我能學到新東西。
您可以嘗試對 select 行執行以下代碼,其中從ConvertedComp
列計算的 z_score 小於或等於 3。
mask = df['ConvertedComp'].sub(df['ConvertedComp'].mean()).div(df['ConvertedComp'].std()).abs().le(3)
df = df[mask]
這對我有用。
(注意:課程論壇上也提供了課程助理對此答案的變體。)
lower = d_q1-(1.5*IQR)
print("Lower: ", lower)
upper = d_q3+(1.5*IQR)
print("Upper: ", upper)
df2 = [(df['ConvertedComp'] < lower) | (df['ConvertedComp'] > upper)]
import numpy as np
df[df2] = np.nan
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.