You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pandas用IQR移除DataFrame离群值时报广播形状不匹配错误如何解决

问题解决方法

错误原因

  • 小数点符号错误:代码中1,5是Python元组语法,实际代表元组(1, 5)而非数值1.5,导致上下限计算结果为二元组,和长度为65536的列向量做比较时无法匹配形状,触发广播错误。
  • 变量名不匹配:上下限定义时用的变量名是Lsup、Linf,后续条件判断中错误使用了未定义的upper_bound、lower_bound。
  • 逻辑运算符错误:Pandas布尔序列的按位或运算不能用Python原生的or,需要用|运算符,且两侧的判断条件必须用括号包裹避免优先级错误。
  • 内置关键字覆盖:使用list作为变量名会覆盖Python内置的列表类型,属于不规范写法,易引发后续其他错误。

修正后代码

离群值索引提取函数

def outliers(dataset, Tag):
    Q1 = dataset[Tag].quantile(0.25)
    Q3 = dataset[Tag].quantile(0.75)
    IQR = Q3 - Q1
    Lsup = Q3 + 1.5 * IQR
    Linf = Q1 - 1.5 * IQR
    out_index = dataset.index[(dataset[Tag] > Lsup) | (dataset[Tag] < Linf)]
    return out_index

提取离群值索引

index_list = []
for col in ['L4553', 'F5432']:
    index_list.extend(outliers(df, col))
# 对索引去重,避免同一行多列同时为离群值时重复添加
index_list = list(set(index_list))

移除离群值得到清洗后数据

df_clean = df.drop(index=index_list)

内容的提问来源于stack exchange,提问作者Renan Augusto Marson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 16:06:02