python - 使用 python 库 FundamentalAnalysis 下载各种 Ticker 的关键比率
问题描述
我尝试通过 FundamentalAnalysis 库从 yahoo Finance 下载关键财务比率。单身很容易我有一个带有代码和名称的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 多个股票代码的数据,我不想将所有这些数据手动输入到列表中。也许这个问题已经在其他地方得到了回答,在那种情况下很抱歉,但我无法找到对我有帮助的线程。有任何想法吗?
解决方案
您可以使用获取符号
symbols = df['Ticker'].to_list()
然后你可以使用for
-loop 没有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)
编辑:它似乎fa.ratios()
返回DataFrames
,如果你将它们保留在列表中,那么你可以将所有连接DataFrames
到一个DataFrame
ratios = list() # list instead of dictionary
for s in symbols:
try:
ratios.append(fa.ratios(s)) # append to list
except Exception as ex:
print(s, ex)
df = pd.concat(ratios, axis=1) # convert list of DataFrames to one DataFrame
print(df.columns)
print(df)
推荐阅读
- rust - 存储对来自寿命不够长的结构的底层缓冲区的引用
- javascript - 我有要切片的字符串,并希望得到其余的字符串
- javascript - JavaScript 未定义的数组索引
- angular - 使用 angular/firebase/angularfire/ssr 时如何添加自定义云函数
- grpc - 将多个服务实例注册到 gRPC 服务器并为每个服务实例关联不同的端口号?
- python - 获取名称为 mlflow 实验的运行 ID?
- python - 无法解压不可迭代的 int 对象。体重指数计算器
- android - 无法创建内部测试人员列表 Android
- lit-element - 点亮元素 - 一个装饰器中的多个属性
- python - 如何根据字符串将具有多种类型信息的数据帧拆分为单独的数据帧?