pandas运算报错:无法对float64数组与bool标量执行xor操作
pandas列计算异或报错排查
报错根因
- 运算符误用:Python语法中
^是**按位异或(xor,位运算)**操作符,不是数学意义上的幂次计算符号。你代码里写的(1 + dfUpdatedRPAPIData['CAGR']) ^ 1会被pandas识别为对浮点型(float64)的Series列做位异或操作,和右侧标量运算时类型不匹配,直接抛出类型错误,报错信息里提到的xor正好对应这个运算符的逻辑。 - 这个问题多是习惯了Excel公式写法(Excel中
^代表幂运算)的用户写Python时容易踩的语法差异坑。
修复方案
Python/pandas生态中做幂次计算要使用**运算符,将原代码中的^替换为**即可正常执行:
dfUpdatedRPAPIData['0'] = dfUpdatedRPAPIData['Current EPS'] * (1 + dfUpdatedRPAPIData['CAGR']) ** 1
如果你的实际需求是计算N期后的EPS预测值,只需要把**后面的数字1替换为对应期数即可,比如计算3期后的值就写**3。
内容的提问来源于stack exchange,提问作者taboo
相关产品推荐
相关产品推荐

