Pandas执行Series乘法时触发executing.NotOneValueFound错误求助
Pandas乘法操作触发NotOneValueFound错误的解决方法
问题重现
执行以下Pandas代码时触发错误:
import pandas as pd data = { 'Column1': [1, 2, 3, 4, 5], 'Column2': [6, 7, 8, 9, 10] } df = pd.DataFrame(data) df['NewColumn'] = (df['Column1'] / df['Column2']) * 100
收到错误信息:
File "/usr/local/lib/python3.8/site-packages/executing/executing.py", line 190, in only raise NotOneValueFound('Expected one value, found 0') executing.executing.NotOneValueFound: Expected one value, found 0
使用Pandas==2.0.3,降级Pandas与其他包冲突,使用mul()方法也出现相同错误;数据无空值、无0值,仅乘法操作报错,除法正常。
解决方案
检查并调整
executing库版本:该错误并非来自Pandas本身,而是executing包的兼容问题。尝试升级或降级executing版本:# 升级到最新版 pip install --upgrade executing # 或者指定兼容版本,比如1.2.0 pip install executing==1.2.0更换运算写法:避开直接链式运算,拆分步骤或使用
assign方法:
拆分步骤写法:div_result = df['Column1'] / df['Column2'] df['NewColumn'] = div_result * 100使用
assign方法:df = df.assign(NewColumn=(df['Column1'] / df['Column2']) * 100)排查执行环境:如果在交互式环境(如Jupyter Notebook)中报错,尝试用普通Python脚本执行代码,排除环境层面的干扰。
内容的提问来源于stack exchange,提问作者Ana clarice Silva
相关产品推荐
相关产品推荐

