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

Python代码报错:ufunc 'subtract'类型不匹配问题求助

解决ufunc 'subtract'类型不匹配错误

嘿,这个错误其实是个很容易犯的小疏忽!咱们来看你的代码问题出在哪:

你写的这两行计算逻辑里藏着问题:

df['HL-PCT'] = (df['Adj. High'] - ['Adj. Low']) / df['Adj. Low'] * 100.0
df['PCT_change'] = (df['Adj. Close'] - ['Adj. Open']) / df['Adj. Open'] * 100.0

核心问题是:你用了普通的字符串列表['Adj. Low']和['Adj. Open'],而不是从DataFrame中提取对应的列df['Adj. Low']和df['Adj. Open']。当Python尝试把字符串列表和DataFrame里的数值列做减法时,它没法处理这种类型不匹配的运算,所以就抛出了你看到的错误。

修正后的完整代码

把那两行里的列表改成DataFrame列引用,同时注意最后一行的列名要和你定义的一致(你之前用的是HL-PCT,别写成下划线的HL_PCT),修正后的代码如下:

import pandas as pd
import quandl

df = quandl.get('WIKI/GOOGL')
# 选取需要的原始列
df = df[['Adj. Open','Adj. High','Adj. Low','Adj. Close','Adj. Volume']]
# 计算高低价波动百分比
df['HL-PCT'] = (df['Adj. High'] - df['Adj. Low']) / df['Adj. Low'] * 100.0
# 计算当日开盘到收盘的涨跌幅
df['PCT_change'] = (df['Adj. Close'] - df['Adj. Open']) / df['Adj. Open'] * 100.0
# 保留最终需要的特征列
df = df[['Adj. Close', 'HL-PCT', 'PCT_change', 'Adj. Volume']]

这样运行就不会报错啦,你可以试试~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:29:36