[使用python库FundamenalAnalysis下载各种股票的密钥比率

问题描述 投票:-1回答:1

我尝试通过FundamentalAnalysis库从Yahoo财务中下载关键财务比率。单身我很容易,我有一个带有代码和名字的df:

  Ticker                      Company
0      A    Agilent Technologies Inc.
1     AA            ALCOA CORPORATION
2    AAC             AAC Holdings Inc
3    AAL  AMERICAN AIRLINES GROUP INC
4   AAME      Atlantic American Corp.

然后我尝试使用一个for循环通过fa.ratios()下载每个股票的比率。

for i in range (3):
    i = 0
    i = i + 1
    Ratios = fa.ratios(tickers["Ticker"][i])

因此,基本上,它将下载一个报价器的所有比率,然后下载第二个报价器的所有比率,依此类推。我还尝试将df更改为列表,但效果不佳。如果我手动将它们放在列表中,例如:

Symbol = ["TSLA" , "AAPL" , "MSFT"]

以某种方式起作用。但是,由于我要使用1000多个股票行情指示器中的数据,所以我不想手动将它们全部键入列表中。也许其他地方已经回答了这个问题,在这种情况下,很抱歉,但是我找不到能够帮助我的话题。有什么想法吗?

python list loops download finance
1个回答
0
投票

您可以使用]获得符号>

symbols = df['Ticker'].to_list()

然后您可以在没有for的情况下使用range()循环>

ratios = dict()

for s in symbols:
    ratios[s] = fa.ratios(s)

print(ratios)

因为某些符号可能无法给出比率,所以您应该使用try/except


最小的工作示例。我仅使用io.StringIO模拟文件。

import FundamentalAnalysis as fa
import pandas as pd
import io

text='''Ticker                      Company
A    Agilent Technologies Inc.
AA            ALCOA CORPORATION
AAC             AAC Holdings Inc
AAL  AMERICAN AIRLINES GROUP INC
AAME      Atlantic American Corp.'''

df = pd.read_csv(io.StringIO(text), sep='\s{2,}')

symbols = df['Ticker'].to_list()
#symbols = ["TSLA" , "AAPL" , "MSFT"]
print(symbols)

ratios = dict()
for s in symbols:
    try:
        ratios[s] = fa.ratios(s)
    except Exception as ex:
        print(s, ex)

for s, ratio in ratios.items():
    print(s, ratio)
© www.soinside.com 2019 - 2024. All rights reserved.