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组_1和pnns\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列上执行我的函数?请