python - python中去除异常值的函数

标签 python python-3.x python-2.7 pandas statistics

我正在尝试编写一个函数来更新 dataset 中所有列中 interquartile 范围内的所有异常值。当我将一个列作为输入传递时它正在工作,但是如果我添加另一个循环来遍历所有列它就不起作用了。

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):

##Get all the column name from the input dataframe x
xColumnNames=x.columns
print(xColumnNames)
#for j in df2ColumnNames:

for j in xColumnNames:
    try:
        print("colnames ",j)
        xy=x[j]    
        mydata=pd.DataFrame()
        #print(xy)
        updated=[]
        Q1,Q3=np.percentile(xy,[25,75])
        IQR=Q3-Q1
        minimum=Q1-1.5*IQR
        maximum=Q3+1.5*IQR
        for i in xy:
            if(i>maximum):
                print("Entering maxim")
                i=maximum
                updated.append(i)
            elif(i<minimum):
                print("enterinf minimum")
                i=minimum
                updated.append(i)
            else:
                updated.append(i)
        x[j]=updated
    except:
        continue
return x

关于python - python中去除异常值的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51179649/

相关文章:

python - 在 IPython Widgets 中,如何用新值更新 DropDown 小部件?

python - pandas:合并、连接和连接的第一步

python - 重新启动程序后附加列表时,pickle 数据将被删除

python - 将 Scipy 与 Pandas 一起使用的警告

python-2.7 - 使用参数实例化Python unittest.TestCase

python - Tastypie : Authentication for GET and Anonymous for POST

python - python中许多正则表达式的速度

python - 如何运行从服务器打开 Web 浏览器脚本的脚本?

python - 如何对包含链接到 Python 中另一个数据框中的值的元素的数据框行执行操作?

Python 替代 fscanf C 代码