我试图编写一个函数来更新dataset
中所有列中的离群值。当我将一个列作为输入传递时,它是有效的,但是如果我添加另一个循环来遍历所有列,它就不起作用了。在
df2ColumnNames=df2.columns
def fixoutliers(x):
for i in df2ColumnNames:
print("colnames ",i)
xy=x[i]
print(xy)
updated=[]
Q1,Q3=np.percentile(xy,[25,75])
IQR=Q3-Q1
#print(IQR)
minimum=Q1-1.5*IQR
maximum=Q3+1.5*IQR
print("maximum",maximum)
for i in xy:
if(i>maximum):
i=maximum
updated.append(i)
elif(i<minimum):
i=minimum
updated.append(i)
else:
print("In else")
updated.append(i)
return updated
谢谢大家的建议。经过一点努力,我成功地创建了我所追求的函数。张贴解决方案,如果它有助于某人
定义一个接受输入数据帧(x)的函数 包含数字列和分类列
def fixoutliers(x):
由于boxplot也使用相同的理论“四分位间距”来检测异常值,因此可以直接使用它来查找数据帧上的异常值。在
相关问题 更多 >
编程相关推荐