Python 3.7 执行大量函数

问题描述

我正在尝试形成一个填充了不同雅虎财务关键统计数据的数据框,我正在使用名为“yahoofinancials”的最新软件包,它是一个很棒的工具,具有许多有用的功能,可以从雅虎获取不同类型的财务数据金融。

我的数据框将包含 num_shares_outstanding、interest_expense、operating_income、total_operating_expense、total_revenue、cost_of_revenue……等等的列。当然,前两列将是日期和符号,我会遇到数千个股票代码,将使用的功能是:

data.get_operating_income()
data.get_total_operating_expense()
data.get_total_revenue()
data.get_cost_of_revenue()
data.get_income_before_tax()
data.get_income_tax_expense()
data.get_gross_profit()
data.get_net_income_from_continuing_ops()
data.get_research_and_development()
data.get_market_cap()
data.get_dividend_yield()
data.get_dividend_rate()
...
@H_404_6@

也许比上面显示的要多得多,我在编写简短的代码来形成这个大数据框时遇到了问题,我的第一个问题是,Python 中是否有一个容器可以容纳我想要使用的函数并运行一个循环将它们应用于每一行的每一列,就像高维矢量化一样?而不是像我现在所做的那样插入每个功能

make an empty df first....and then..


def Obtain_Yahho_Financials(i,df):
    try:
        data = yf(i)
        df.loc[df.Symbol == i,'num_shares_outstanding'] = data.get_num_shares_outstanding(price_type='current')
        df.loc[df.Symbol == i,'interest_expense'] = data.get_interest_expense()
        df.loc[df.Symbol == i,'operating_income'] = data.get_operating_income()
        df.loc[df.Symbol == i,'total_operating_expense'] = data.get_total_operating_expense()
        df.loc[df.Symbol == i,'total_revenue'] = data.get_total_revenue()
        df.loc[df.Symbol == i,'cost_of_revenue'] = data.get_cost_of_revenue()
        df.loc[df.Symbol == i,'income_before_tax'] = data.get_income_before_tax()
        df.loc[df.Symbol == i,'income_tax_expense'] = data.get_income_tax_expense()
        df.loc[df.Symbol == i,'gross_profit'] = data.get_gross_profit()
...........

    except:
        pass or output na to the cell!!!!!

    return df
@H_404_6@

您会注意到,我使用 try except 的原因是有时该函数会在某些代码上返回错误,这是我的第二个问题,我知道这种方式会出现问题,因为您尝试除了许多函数外,它会跳出第一个导致错误函数,其余函数将不会执行!但是我应该怎么做才能尝试除了每个函数,而不是真的让 50 次尝试除了命令?

如果有关于以简短的方式制作这个大数据框的任何想法,不胜感激!!!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)