我正在尝试创建一个代码来向我显示一些股票统计数据。为此,我需要迭代 python 中的股票列表,并为每只股票显示一些详细信息。
到目前为止我有这个代码:
import yfinance as yf
import pandas as pd
tickerlist = ['AAPL', 'MSFT', 'AMZN']
stock_data = []
for stock in tickerlist:
info = yf.Ticker(stock).info
stock_data.append(info.get("symbol"))
stock_data.append(info.get("bookValue")))
df = pd.DataFrame(stock_data)
df
但它只显示一列包含所有数据,而不是每只股票显示一行,并带有数据标题。 输出数据图像
我稍微调整了代码,每个项目一行,但它仅重复最后一个项目,而不是将每个条目及其值添加到行中。
import yfinance as yf
import pandas as pd
tickerlist = ['AAPL', 'MSFT', 'AMZN']
for stock in tickerlist:
info = yf.Ticker(stock).info
df = pd.DataFrame({
'symbol': info.get("symbol"),
'bookValue': info.get("bookValue")}, index=('0', '1', '2'))
df
我是Python新手,我的知识让我找到了这些片段,如果有人可以提供帮助的话。
谢谢!
您不需要将所需的每条信息作为单独的元素添加到
stock_data
,您应该有一个可迭代列表,其中列表的每个元素都包含该股票的所有相关数据:
mport yfinance as yf
import pandas as pd
tickerlist = ['AAPL', 'MSFT', 'AMZN']
stock_data = []
for stock in tickerlist:
info = yf.Ticker(stock).info
stock_data.append((info.get("symbol"), info.get("bookValue")))
df = pd.DataFrame(stock_data)
print(df)
输出:
0 1
0 AAPL 3.767
1 MSFT 38.693
2 AMZN 24.655