Pandas YFinance 上的数据框

Pandas Dataframe on YFinance

我正在使用 YFinance 获取一些股票的历史价格。尝试将数据转换为 Json 作为 JS 图表的数据。 Yfinance 数据框将日期列视为索引。结果,我不知道如何 access/print 出简单的 'date' 列。 (你可以说我是 python 的初学者)。

我尝试阅读有关 to_json() 和 reset_index() 之类的数据框文档。但是我太菜了,听不懂他们在说什么。

我真正想要的是从 Yfinance 数据框为我网页上的 javascript 应用程序生成一个 Json 文本,如下所示:

<script>
data = [{"date":"2020-11-20",
         "open":"1234",
         "high":"1245",
         "low":"999",
         "close":"1120",
         "volume":"1234566"},
        {"date":"2020-11-19",......
         .......
        }]
</script>

我现在正在使用愚蠢的 for 循环来生成文本,但我相信还有更优雅的解决方案。

yfinance 数据按日期索引,因此 df.to_dict(orient='records')` 将转换为所需格式。

import yfinance as yf

tickers = yf.Tickers('aapl')
df = tickers.tickers.AAPL.history(period="1mo")
df.reset_index(inplace=True)
df['Date'] = df['Date'].dt.strftime('%Y-%m-%d')
df.drop(['Dividends','Stock Splits'], inplace=True, axis=1)
df.to_dict(orient='records')

[{'Date': '2020-10-21',
  'Open': 116.46906393914934,
  'High': 118.50555147489459,
  'Low': 116.24944161427659,
  'Close': 116.6687240600586,
  'Volume': 89946000},
 {'Date': '2020-10-22',
  'Open': 117.24771296653945,
  'High': 117.83670077073543,
  'Low': 114.39263813163417,
  'Close': 115.55064392089844,
  'Volume': 101988000},
 {'Date': '2020-10-23',
  'Open': 116.18954660696212,
  'High': 116.34927470261839,
  'Low': 114.08317994708769,
  'Close': 114.84187316894531,
  'Volume': 82572600},
 {'Date': '2020-10-26',
  'Open': 113.81364269517282,
  'High': 116.34926896680302,
  'Low': 112.6855840199125,
  'Close': 114.85185241699219,
  'Volume': 111850700},
  ...]