Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python离群值Nutri函数_Python - Fatal编程技术网

python离群值Nutri函数

python离群值Nutri函数,python,Python,您好,我必须创建一个函数,在所有列上应用函数“删除异常值” 首先,我的数据是: pnns_groups_1 ................................ object pnns_groups_2 ................................ object proteins_100g ................................ float64 fiber_100g ...........

您好,我必须创建一个函数,在所有列上应用函数“删除异常值”

首先,我的数据是:

pnns_groups_1     ................................  object

pnns_groups_2     ................................  object

proteins_100g     ................................  float64

fiber_100g        ................................  float64

salt_100g         ................................  float64

fat_100g          ................................  float64

trans-fat_100g    ................................  float64

carbohydrates_100g ................................  float64

sugars_100g  ................................  float64

starch_100g  ................................  float64

omega-3-fat_100g ................................  float64

nutrition_grade_fr ................................  float64

nutrition-score-fr_100g  ................................  float64

energy_100g   ................................  float64
数据类型:对象

我创建了这个函数:

*def delete_outliers(col):*

    inf = (col.quantile(0.25)-(1.5* (col.quantile(0.75)-col.quantile(0.25))))
    sup = (col.quantile(0.75)+(1.5*(col.quantile(0.75)-col.quantile(0.25))))
    return col.between(inf,sup)*col
我无法在我的所有数据帧上应用检测异常值功能,即使我从数据帧中删除pnns\u组_1pnns\u组_2,只保留float64数据

我有一个属性错误:

AttributeError:'DataFrame'对象没有属性'between'


您很可能正在向函数传递数据帧,而不仅仅是列。 要将函数应用于多个列,请使用

result = df.apply(delete_outliers, axis=0)
这将把你的函数应用到每一列(你可以使用切片),并以数据帧的形式返回结果


对于完整的方法引用,请在is Series方法之间查阅

,是否确实要将列作为单列传递,而不是作为DataFrame传递?@G.M似乎要传递DataFrame对象而不是列来检测异常值,请确保将列传递给相同的列function@michal波洛夫卡,我不知道如何把“col”放在一列中。我尝试了“dataframe.values”,但它在线获取值,而不是列中的值。有关信息,我有“320571”行和“12”列。如何在12列上执行我的函数?请