首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >函数以删除异常值。

函数以删除异常值。
EN

Stack Overflow用户
提问于 2022-02-12 16:47:39
回答 1查看 55关注 0票数 0

我创建了一个函数来删除我的离群点。这是函数

代码语言:javascript
复制
def dropping_outliers(train, condition):
    drop_index = train[condition].index
    #print(drop_index)
    train = train.drop(drop_index,axis = 0)

当我做的时候

代码语言:javascript
复制
dropping_outliers(train, ((train.SalePrice<100000)  & (train.LotFrontage>150)))

当我手动执行函数时,没有什么是dropped.However。在这种情况下,我确实得到了一个有效的索引(943),并且当我这样做的时候

代码语言:javascript
复制
train = train.drop([943],axis = 0)

那么我想要的行被正确地删除了。我不明白为什么函数会不工作,因为它应该做的正是我正在做的手动。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-12 16:55:17

dropping_outliers的末尾,它将drop的结果分配给一个局部变量,而不是改变传入的数据。试一试:

代码语言:javascript
复制
def dropping_outliers(train, condition):
    drop_index = train[condition].index
    #print(drop_index)
    return train.drop(drop_index,axis = 0)

然后在调用函数时执行赋值。

代码语言:javascript
复制
train = dropping_outliers(train, ((train.SalePrice<100000)  & (train.LotFrontage>150)))

也见python pandas dataframe, is it pass-by-value or pass-by-reference

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71093872

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档