我对Python真的很陌生,这个问题可能太基础了,目前我似乎无法在网上找到任何答案。
我一直在尝试遍历包含 9 个股票代码的列表(下面称为“符号”),以从 YahooFinancials 检索每个代码的 Assets 负债表、现金流量表和损益表。
一直在使用 for symbol in ecommerce():
创建循环,但收到下面的 TypeError。
from yahoofinancials import YahooFinancials
import pandas as pd
import requests
import numpy as np
from datetime import datetime
ecommerce = ['CTRP', 'EBAY', 'GRUB', 'BABA', 'JD', 'EXPE', 'AMZN', 'BKNG', 'MPNGF']
for symbol in ecommerce():
df_income_statement = scrape_table('https://finance.yahoo.com/quote/' + symbol + '/financials?p=' + symbol)
df_income_statement
df_cash_flow = scrape_table('https://finance.yahoo.com/quote/' + symbol + '/cash-flow?p=' + symbol)
df_cash_flow
balance_sheet_url = 'https://finance.yahoo.com/quote/' + symbol + '/balance-sheet?p=' + symbol
df_balance_sheet = scrape_table(balance_sheet_url)
预期结果: Assets 负债表为“CTRP”、“EBAY”、“GRUB”、“BABA”、“JD”、“EXPE”、“AMZN”、“BKNG”、“MPNGF”的数据框
TypeError: 'list' object is not callable
from yahoofinancials import YahooFinancials import pandas as pd import requests import numpy as np from datetime import datetime
ecommerce = ['CTRP', 'EBAY', 'GRUB', 'BABA', 'JD', 'EXPE', 'AMZN', 'BKNG', 'MPNGF']
for symbol in ecommerce(): df_income_statement = scrape_table('https://finance.yahoo.com/quote/' + symbol + '/financials?p=' + symbol) df_income_statement
最佳答案
如果你编写 ecommerce()
Python 假设你想要调用一个由名称 ecommerce
引用的函数(可调用),但你想要做的是迭代在列表上(电子商务包含一个列表)。
所以你只需要把()去掉就可以了。您可以从以下内容开始:
for symbol in ecommerce:
income_statement_dataframes= pd.read_html('https://finance.yahoo.com/quote/' + symbol + '/financials?p=' + symbol)
使用此代码venue_statement_dataframes
应包含数据帧列表。 url 引用的网页上每个 html 表一个数据帧。
您只需要检查它是哪一张表。如果你幸运的话,你已经可以这样使用它了。如果你在列表的元素中找不到可用形式的表格(例如,如果 html 有点邪恶),你可以看看 BeautifulSoup(导入 bs4)。
关于python - 如何浏览股票代码列表来更新数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57776743/