如何从雅虎采购一组股票? [关闭]

Posted

技术标签:

【中文标题】如何从雅虎采购一组股票? [关闭]【英文标题】:How source a set stocks from yahoo? [closed] 【发布时间】:2021-01-18 23:07:08 【问题描述】:

我有一份股票清单和一家诱人的咨询公司,可以为每个人设定报价。并创建一个数据框以继续分析

result= [['ABEV3.SA', 'AZUL4.SA', 'B3SA3.SA', 'BBAS3.SA', 'BBDC3.SA', 'BBDC4.SA', 'BBSE3.SA', 'BEEF3.SA', 'BPAC11.SA']

for t in result:
    ticker[t]=wb.DataReader(t, data_source='yahoo', start='2020-10-1')['High','Low','Open','Close','Volume','Adj Close']

KeyError: ('High', 'Low', 'Open', 'Close', 'Volume', 'Adj Close')

【问题讨论】:

请发布您的代码,而不是您的代码截图。 该代码将列列表转换为单个元组并在数据中搜索该列。该语法似乎不支持多列选择。尝试先选择一列。 @mike67 我怎么能做到?我是python初学者。你能告诉更多,举个例子,谢谢。 【参考方案1】:

DataReader 返回一个 pandas 数据框,因此您需要相应地访问数据单元格。

试试这个代码:

import pandas_datareader.data as wb

result= ['ABEV3.SA', 'AZUL4.SA', 'B3SA3.SA', 'BBAS3.SA', 'BBDC3.SA', 'BBDC4.SA', 'BBSE3.SA', 'BEEF3.SA', 'BPAC11.SA']

for t in result:
    x = wb.DataReader(t, data_source='yahoo', start='2020-10-1')  # return entire dataset for this stock
    print('\nStock =',t)
    print(x)  # print dataset
    print('First High =', x.iloc[0]['High'])  # get High column from first row
   

输出

Stock = ABEV3.SA
             High    Low   Open  Close    Volume  Adj Close
Date
2020-10-01  12.78  12.48  12.55  12.70  20845400      12.70
2020-10-02  12.83  12.53  12.61  12.53  18790500      12.53
First High = 12.779999732971191

Stock = AZUL4.SA
                 High    Low   Open      Close    Volume  Adj Close
Date
2020-10-01  26.080000  24.83  25.32  25.700001  20951400  25.700001
2020-10-02  25.559999  24.25  25.40  24.270000  14473800  24.270000
First High = 26.079999923706055

........

【讨论】:

以上是关于如何从雅虎采购一组股票? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何从雅虎财经这样的网站获取数据? [关闭]

如何:Python Pandas 获取当前股票数据

最大化给定股票报价的利润[关闭]

从谷歌和雅虎收集搜索结果的程序[关闭]

无法使用 pandas_datareader 从雅虎获取股票数据

我正在努力寻找一种将 IPO 股票从雅虎金融 API 中撤出的方法