首页 > 解决方案 > Python函数在一些迭代后停止工作

问题描述

from yahoo_fin.stock_info import *
n=0
Ptf_opp_2=[]
lenght_2=len(Ptf_opp)

def step2():
    for n in range(0,lenght_2):
        Bs=get_balance_sheet(Ptf_opp[n])
        tca=Bs.loc[Bs.get('Breakdown').str.match('Total Current Assets')]
        tl=Bs.loc[Bs.get('Breakdown').str.match('Total Liabilities')]
        tcl=Bs.loc[Bs.get('Breakdown').str.match('Total Current Liabilities')]
        if (tca.iloc[0,1] != None and \
            tca.iloc[0,1] != '-' and \
            tl.iloc[0,1] != None and \
            tl.iloc[0,1] != '-' and \
            tcl.iloc[0,1] != None and \
            tcl.iloc[0,1] != '-' and \
            (float(tcl.iloc[0,1]) / float(tca.iloc[0,1])) < 1.1 and\
            (float(tca.iloc[0,1]) / float(tl.iloc[0,1])) > 1.5):
            Ptf_opp_2.append(Ptf_opp[n]) 
step2()

大家好,我是python新手,我正在尝试为大学考试编写代码,这是我项目的一部分,它可以运行,但是经过一些迭代后,Bs=get_balance_sheet(Ptf_opp[n])停止工作(真的可以工作,但只是创建了一个数据框[0,0]这是没用的,也不正确)。

该代码的目的是在检查包含在其中的股票代码Ptf_opp[n]满足下面的边界条件后创建一个新的数据帧。

此外,如果有人有任何改进我的代码的提示,我将不胜感激。

标签: pythonpandasloopsfinancequantitative-finance

解决方案


不要这样做:from yahoo_fin.stock_info import *

做:from yahoo_fin import stock_info

stock_info.get_balance_sheet然后识别它来自哪里的函数

我猜你正在达到 API 使用的速率限制,前提是该函数实际上是在联系 yahoo


推荐阅读