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

使用stats.probplot绘制QQ图触发AttributeError报错求助

解决stats.probplot绘制QQ图时的AttributeError报错

报错原因

报错AttributeError: 'float' object has no attribute 'shape'说明你传入stats.probplot的df['col']不是一维序列(比如Pandas Series或NumPy数组),而是单个浮点数标量。

排查与解决步骤

  • 确认列名正确性:检查数据框中是否存在名为col的列,避免拼写错误或大小写不匹配问题。
  • 验证数据类型:执行print(type(df['col']))和print(df['col'].shape),正常输出应类似<class 'pandas.core.series.Series'>和(n,)(n为数据行数)。如果输出是<class 'float'>,说明你误取了单个元素(比如用df.loc[0, 'col']而非df['col'])。
  • 清理无效数据:若列中存在空值,先清理再传入函数:
    cleaned_col = df['col'].dropna()
    stats.probplot(cleaned_col, dist="norm", plot=pylab)
    pylab.show()
    
  • 强制转换数值类型:如果列类型非数值,先做类型转换:
    df['col'] = pd.to_numeric(df['col'], errors='coerce')
    stats.probplot(df['col'].dropna(), dist="norm", plot=pylab)
    pylab.show()
    

修正后的完整代码示例

import pandas as pd
import scipy.stats as stats
import pylab

# 处理数据类型与空值
df['col'] = pd.to_numeric(df['col'], errors='coerce')
cleaned_data = df['col'].dropna()

# 绘制QQ图
stats.probplot(cleaned_data, dist="norm", plot=pylab)
pylab.show()

内容的提问来源于stack exchange,提问作者Amethyst

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 01:45:25