I am trying to make a daily line graph for certain stocks, but am running into an issue. Getting the 'Close' price every 2 minutes functions correctly, but when I try and get 'Datetime' I am getting an error. I believe yfinance used pandas to create a dataframe, but I may be wrong. Regardless, I am having issues pulling a certain column from yfinance.
I am pretty new to python and many of the packages, so this might be a simple error, but my code is shown below.
stock = yf.Ticker('MSFT')
print(stock.history(period='1d', interval='2m'))
priceArray = stock.history(period='1d',interval='2m')['Close']
dateArray = stock.history(period='1d',interval='2m')['Datetime']
The error I am getting is:
File "C:\Users\TrevorSmith\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\pandas\core\frame.py", line 3024, in __getitem__ indexer = self.columns.get_loc(key)
File "C:\Users\TrevorSmith\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\pandas\core\indexes\base.py", line 3082, in get_loc raise KeyError(key) from err
KeyError: 'Date'
When I print the stock.history(period='1d',interval='2m)
It shows the following column names:
Open High Low Close Volume Dividends Stock Splits Datetime
Again, getting ['Close'] from this information works, but ['Date'], ['Datetime'], ['DateTime'], and ['Time'] do not work.
Am I doing something wrong here? Or is there another way to get the info I am looking for?
Datetime is no column name, it just looks like one:
Try
print(stock.history(period='1d',interval='2m).keys())
and you will see.