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},
...]
我正在使用 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},
...]