为列表中的每个数据创建行 - python

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

我正在尝试创建一个代码来向我显示一些股票统计数据。为此,我需要迭代 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

输出数据2的图像

我是Python新手,我的知识让我找到了这些片段,如果有人可以提供帮助的话。

谢谢!

python dataframe stock yfinance
1个回答
0
投票

您不需要将所需的每条信息作为单独的元素添加到

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
© www.soinside.com 2019 - 2024. All rights reserved.