Python ValueError:n行的未知类型对象评估=>;100

Python ValueError:n行的未知类型对象评估=>;100,python,pandas,numpy,eval,Python,Pandas,Numpy,Eval,我有以下代码: 将numpy导入为np 作为pd进口熊猫 长度=100 test=pd.DataFrame({ “number1”:np.random.randint(1,11,大小=长度), “sign1”:np.random.choice(['*','/'],长度), “number2”:np.random.randint(1,11,大小=长度), “sign2”:np.random.choice(['+','-'],长度), “number3”:np.random.randint(1101

我有以下代码:

将numpy导入为np
作为pd进口熊猫
长度=100
test=pd.DataFrame({
“number1”:np.random.randint(1,11,大小=长度),
“sign1”:np.random.choice(['*','/'],长度),
“number2”:np.random.randint(1,11,大小=长度),
“sign2”:np.random.choice(['+','-'],长度),
“number3”:np.random.randint(1101,大小=长度),
“随机”:np.random.randint(1101,大小=长度),
})
测试[“结果”]=pd.eval(测试[“数字1”].aType(str)+测试[“符号1”]+测试[“数字2”].aType(str)+\
测试[“sign2”]+测试[“number3”]。类型(str))
我生成一些随机方程,然后求解它们。如果
length
小于101,所有这些都可以正常工作。如果我将其设置为“更多”,我会得到:

ValueError回溯(最近一次调用)
在里面
14 })
15
--->16测试[“结果”]=pd.eval(测试[“数字1”].aType(str)+测试[“符号1”]+测试[“数字2”].aType(str)+\
17测试[“信号2”]+测试[“数字3”]。A类型(str))
~/anaconda3/lib/python3.8/site-packages/pandas/core/computation/eval.py in eval(expr、解析器、引擎、truediv、本地、全局、解析器、级别、目标、就地)
344发动机=_发动机[发动机]
345 eng_inst=eng(解析表达式)
-->346 ret=工程仪器评估()
347
348如果parsed_expr.assigner为无:
.
.
.
ValueError:未知类型对象
为什么??发生了什么事?如何修复它?

它是,需要通过
apply
map
分别处理每个值:

test["result"] = (test["number1"].astype(str)+test["sign1"]+test["number2"].astype(str)+\
                         test["sign2"]+test["number3"].astype(str)).apply(pd.eval)


嗯,我可以复制,但我得到了
属性错误:“Pandasexpervisitor”对象没有属性“visit\u ELLISSION”
作为我的错误。哦,在阅读了@jezrael指出的问题后,我明白了原因。大于100的序列的
repr
方法的输出中有一个
..
,该
eval
无法解析。因此,
map
解决方案必须一一完成。这两种解决方案之间有什么区别吗?@MyWork-如果我认为没有,一般来说,
map
如果数据量大,速度应该更快。
test["result"] = (test["number1"].astype(str)+test["sign1"]+test["number2"].astype(str)+\
                         test["sign2"]+test["number3"].astype(str)).map(pd.eval)