【问题标题】:python pandas yahoo data ETFpython pandas 雅虎数据 ETF
【发布时间】:2015-01-30 14:42:26
【问题描述】:

我想使用 pandas 从 yahoo Finance 获取一些 ETF 数据。

如果我进入雅虎财经网站,我可以找到单个 ETF(例如 C001)。

但是,如果我尝试使用 python pandas 提取数据,我什么也得不到。

df = pd.io.data.DataReader('C001','yahoo',start=datetime(2010,1,1), end=date.today())

如果我使用“AAP”而不是“C001”,代码可以正常工作。

有什么明显的我做错了吗? 'yahoo' 有效但 ETF 股票代码无效的原因是什么?

提前非常感谢。

【问题讨论】:

  • 第二个参数是数据源,所以如果你想要来自雅虎的数据,这必须是'yahoo'(它也可以是google或fred)
  • 谢谢,多么愚蠢。但是,这仍然不能解决问题。

标签: python pandas yahoo-finance


【解决方案1】:

我注意到在 yahoo Finance 上有几个 C001 的代码(C001.f、c001.de 等等)。

我使用了我的一些代码(也包括股票代码),并且使用 C001F(或其他所有代码)运行良好。

 import datetime
 import pandas as pd
 from pandas import DataFrame
 from pandas.io.data import DataReader
 symbols_list = ['C001.F']

 symbols=[]
 for ticker in symbols_list: 
     r = DataReader(ticker, "yahoo",
               start=datetime.datetime(20140, 01, 01))
     # add a symbol column
     r['Symbol'] = ticker
     symbols.append(r)
 # concatenate all the dfs
 df = pd.concat(symbols)

 print (df)

结果是这样的:

              Open    High     Low   Close  Volume  Adj Close  Symbol
Date                                                                 
2010-01-12   60.40   60.40   59.10   59.13    5100      59.13  C001.F
2010-01-13   59.30   59.81   59.30   59.81    3300      59.81  C001.F
2010-01-14   59.93   59.93   59.58   59.90     400      59.90  C001.F
2010-01-15   59.81   60.04   58.46   58.54    3400      58.54  C001.F
2010-01-18   58.93   59.09   58.91   59.09    4100      59.09  C001.F
2010-01-19   58.70   59.52   58.48   59.52   16700      59.52  C001.F
2010-01-20   59.39   59.52   58.42   58.46   89300      58.46  C001.F
2010-01-21   58.71   58.83   56.94   57.08   11800      57.08  C001.F
2010-01-22   57.19   57.19   56.17   56.17   14200      56.17  C001.F
2010-01-25   56.32   56.83   56.16   56.21   45700      56.21  C001.F
2010-01-26   55.72   56.60   55.71   56.60    4200      56.60  C001.F
2010-01-27   56.06   56.53   55.92   56.22     300      56.22  C001.F

这是你想要完成的吗? (如果您不想要符号代码,请不要使用 #add a symbol... 之后的行)并在 print r 中更改 print df。 我使用符号代码,因为我在检索多个代码时需要查看符号

【讨论】:

  • 嗨,安德里亚,这正是我想要的。附加字母表示股票交易的地点。非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-12
  • 2019-09-12
  • 1970-01-01
相关资源
最近更新 更多