KeyError: 'Adj Close' beim Herunterladen von Aktiendaten mit YFInance in PythonPython

Python-Programme
Anonymous
 KeyError: 'Adj Close' beim Herunterladen von Aktiendaten mit YFInance in Python

Post by Anonymous »

Code: Select all

import yfinance as yf
import pandas as pd
from pandas_datareader import data as pdt
import datetime as dt
import numpy as np
from scipy.optimize import minimize

end_date = dt.datetime.now()
start_date = end_date - dt.timedelta(days=365*5)

tickers = ['SPY', 'QQQ', 'GLD', 'VTI', 'BND']

adj_close_df = pd.DataFrame()
for ticker in tickers:
data = yf.download(ticker, start = start_date, end = end_date)
adj_close_df[ticker] = data['Adj Close']

print(adj_close_df)
< /code>
Und unten ist das Ergebnis, wenn es scheint, dass Spyder das nicht bekommen kann, was ich brauche: < /p>
%runcell -i 0 C:/Users/User/Downloads/untitled0.py
[*********************100%***********************]  1 of 1 completed
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
File ~\AppData\Local\spyder-6\envs\spyder-runtime\Lib\site-packages\pandas\core\indexes\base.py:3805, in Index.get_loc(self, key)
3804 try:
-> 3805     return self._engine.get_loc(casted_key)
3806 except KeyError as err:

File index.pyx:167, in pandas._libs.index.IndexEngine.get_loc()

File index.pyx:196, in pandas._libs.index.IndexEngine.get_loc()

File pandas\\_libs\\hashtable_class_helper.pxi:7081, in pandas._libs.hashtable.PyObjectHashTable.get_item()

File pandas\\_libs\\hashtable_class_helper.pxi:7089, in pandas._libs.hashtable.PyObjectHashTable.get_item()

KeyError: 'Adj Close'

The above exception was the direct cause of the following exception:

KeyError                                  Traceback (most recent call last)
File c:\users\user\downloads\untitled0.py:16
14 for ticker in tickers:
15     data = yf.download(ticker, start = start_date, end = end_date)
---> 16     adj_close_df[ticker] = data['Adj Close']
18     print(adj_close_df)

File ~\AppData\Local\spyder-6\envs\spyder-runtime\Lib\site-packages\pandas\core\frame.py:4101, in DataFrame.__getitem__(self, key)
4099 if is_single_key:
4100     if self.columns.nlevels > 1:
-> 4101         return self._getitem_multilevel(key)
4102     indexer = self.columns.get_loc(key)
4103     if is_integer(indexer):

File ~\AppData\Local\spyder-6\envs\spyder-runtime\Lib\site-packages\pandas\core\frame.py:4159, in DataFrame._getitem_multilevel(self, key)
4157 def _getitem_multilevel(self, key):
4158     # self.columns is a MultiIndex
-> 4159     loc = self.columns.get_loc(key)
4160     if isinstance(loc, (slice, np.ndarray)):
4161         new_columns = self.columns[loc]

File ~\AppData\Local\spyder-6\envs\spyder-runtime\Lib\site-packages\pandas\core\indexes\multi.py:3040, in MultiIndex.get_loc(self, key)
3037     return mask
3039 if not isinstance(key, tuple):
-> 3040     loc = self._get_level_indexer(key, level=0)
3041     return _maybe_to_slice(loc)
3043 keylen = len(key)

File ~\AppData\Local\spyder-6\envs\spyder-runtime\Lib\site-packages\pandas\core\indexes\multi.py:3391, in MultiIndex._get_level_indexer(self, key, level, indexer)
3388         return slice(i, j, step)
3390 else:
-> 3391     idx = self._get_loc_single_level_index(level_index, key)
3393     if level > 0 or self._lexsort_depth == 0:
3394         # Desired level is not sorted
3395         if isinstance(idx, slice):
3396             # test_get_loc_partial_timestamp_multiindex

File ~\AppData\Local\spyder-6\envs\spyder-runtime\Lib\site-packages\pandas\core\indexes\multi.py:2980, in MultiIndex._get_loc_single_level_index(self, level_index, key)
2978     return -1
2979 else:
-> 2980     return level_index.get_loc(key)

File ~\AppData\Local\spyder-6\envs\spyder-runtime\Lib\site-packages\pandas\core\indexes\base.py:3812, in Index.get_loc(self, key)
3807     if isinstance(casted_key, slice) or (
3808         isinstance(casted_key, abc.Iterable)
3809         and any(isinstance(x, slice) for x in casted_key)
3810     ):
3811         raise InvalidIndexError(key)
-> 3812     raise KeyError(key) from err
3813 except TypeError:
3814     # If we have a listlike key, _check_indexing_error will raise
3815     #  InvalidIndexError.  Otherwise we fall through and re-raise
3816     #  the TypeError.
3817     self._check_indexing_error(key)

KeyError: 'Adj Close'
Bildbeschreibung hier eingeben
Ich versuche, historische Aktiendaten für mehrere Ticker mit der YFInance -Bibliothek in Python herunterzuladen. Aber ich erhalte einen Fehler, wenn ich versuche, die Spalte "Adj Close" der heruntergeladenen Daten zu erhalten. Hier ist der Code, den ich oben verwende:

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post