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

使用Cufflinks绘制Spread Graph时遇pandas无np属性错误

解决Cufflinks绘制Spread Graph时的AttributeError: module 'pandas' has no attribute 'np'错误

问题原因

新版Pandas(2.0及以上版本)移除了pd.np这个指向NumPy的快捷引用,而Cufflinks绘制Spread Graph的相关源码仍在使用pd.np语法,导致触发该错误。其他图表正常是因为只有Spread的逻辑依赖了这个废弃的语法。

解决办法

1. 手动修改Cufflinks源码

  • 找到Cufflinks的安装目录(可通过import cufflinks; print(cufflinks.__file__)查看路径)
  • 定位到包含Spread绘图逻辑的文件(通常是plotlytools.py)
  • 对代码做两处修改:
    • 在文件顶部添加import numpy as np
    • 将所有pd.np替换为np(比如pd.np.mean改为np.mean,pd.np.array改为np.array)
  • 保存文件后重新运行代码即可。

2. 手动计算Spread数据,绕过Cufflinks内置实现

Spread Graph本质是展示两个序列的差值及原始序列,可自行计算差值后组合绘图:

import cufflinks as cf

# 生成测试数据
df = cf.datagen.lines(2)
# 计算两个序列的差值
df['spread'] = df.iloc[:, 0] - df.iloc[:, 1]

# 先绘制原始两条折线
fig = df.iloc[:, :2].iplot(asFigure=True)
# 添加差值的填充区域
fig.add_scatter(
    x=df.index,
    y=df['spread'],
    fill='tozeroy',
    name='Spread',
    fillcolor='rgba(0, 128, 255, 0.2)'
)
fig.show()

3. 尝试Cufflinks开发版

如果官方已在dev分支修复该问题,可尝试安装开发版本:

pip install git+https://github.com/santosjorge/cufflinks.git

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 18:32:05