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
相关产品推荐
相关产品推荐

