我有一个递归函数
def boost_test(frame, iteration, max_iteration):
if iteration < max_iteration:
print iteration, max_iteration
# get predictions
iteration += 1
boost_test(frame, iteration, max_iteration)
elif iteration == max_iteration:
print 'return frame', iteration, max_iteration, frame.columns
#print frame
return frame
我可以这样运行:
testF = pd.DataFrame([1,2])
testF.columns = ['hello']
n = boost_test(testF, 0, 5)
这是输出: 0 5 1 5 2 5 3 5 4 5 return frame 5 5 Index([u'hello'],dtype ='object')
所以,看起来一切都是正确的。但如果它看起来不像函数实际上返回一个帧。
当我尝试 n.head()
我明白了:
AttributeError: 'NoneType' object has no attribute 'head'
我为什么不返回数据帧而感到茫然。任何帮助深表感谢。谢谢!
答案 0 :(得分:1)
boost_test(frame, iteration, max_iteration)
在这里,您进行递归调用,但不对结果执行任何操作。您需要明确return
它的值才能重新启动调用堆栈。