【发布时间】:2021-11-13 18:56:50
【问题描述】:
我正在尝试从值被标记为异常值的每一列中提取索引。我想要的是然后组合所有这些索引并将它们从我的数据框中删除。我在这里有一个起点。我不确定我是否应该让该函数包含完整的数据集并在其中检测到每列异常值,或者将其包含在 for 循环中并将错误索引附加到列表中。
def find_outliers(df):
q1 = df[i].quantile(.25)
q3 = df[i].quantile(.75)
IQR = q3 - q1
ll = q1 - (1.5*IQR)
ul = q3 + (1.5*IQR)
upper_outliers = df[df[i] > ul].index.tolist()
lower_outliers = df[df[i] < ll].index.tolist()
bad_indices = list(set(upper_outliers + lower_outliers))
return(bad_indices)
bad_indexes = []
for col in df.columns:
if df[col].dtype in ["int64","float64"]:
bad_indexes.append(find_outliers(df[col]))
【问题讨论】:
-
嗨,克里斯。我能够解决我的问题。看起来我只需要在遍历所有列之前修复我的函数输入。谢谢