Hi - When trying to create the optimization_df dataframe from new_df I getting a key error for 'Adj Close'. below is the error and the code that I am using. Has anyone else experienced this and have suggestions on how to resolve? Thanks!
Error:
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/pandas/core/indexes/base.py", line 3805, in get_loc
return self._engine.get_loc(casted_key)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "index.pyx", line 167, in pandas._libs.index.IndexEngine.get_loc
File "index.pyx", line 196, in pandas._libs.index.IndexEngine.get_loc
File "pandas/_libs/hashtable_class_helper.pxi", line 7081, in pandas._libs.hashtable.PyObjectHashTable.get_item
File "pandas/_libs/hashtable_class_helper.pxi", line 7089, in pandas._libs.hashtable.PyObjectHashTable.get_item
KeyError: 'Adj Close'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/filename", line 261, in
optimization_df = new_df[optimization_start_date:optimization_end_date]['Adj Close'][cols]
File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/pandas/core/frame.py", line 4102, in __getitem__
indexer = self.columns.get_loc(key)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/pandas/core/indexes/base.py", line 3812, in get_loc
raise KeyError(key) from err
KeyError: 'Adj Close'
Code Snippet below:
stocks = data.index.get_level_values('ticker').unique().tolist()
new_df = yf.download(tickers=stocks,
start=data.index.get_level_values('date').unique()[0]-pd.DateOffset(months=12),
end=data.index.get_level_values('date').unique()[-1])
returns_dataframe = np.log(new_df['Adj Close']).diff()
portfolio_df = pd.DataFrame()
for start_date in fixed_dates.keys():
end_date = (pd.to_datetime(start_date)+pd.offsets.MonthEnd(0)).strftime('%Y-%m-%d')
cols =fixed_dates[start_date]
optimization_start_date = (pd.to_datetime(start_date)-pd.DateOffset(months=12)).strftime('%Y-%m-%d')
optimization_end_date = (pd.to_datetime(start_date)-pd.DateOffset(months=1)).strftime('%Y-%m-%d')
optimization_df = new_df[optimization_start_date:optimization_end_date]['Adj Close'][cols]
#i'm getting an error in this line above with 'Adj Close'
weights = optimize_weights(prices=optimization_df, lower_bound=round(1/(len(optimization_df.columns)*2),3))
weights = pd.DataFrame(weights, index=pd.Series(0))
Hi - When trying to create the optimization_df dataframe from new_df I getting a key error for 'Adj Close'. below is the error and the code that I am using. Has anyone else experienced this and have suggestions on how to resolve? Thanks!
Error:
Traceback (most recent call last): File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/pandas/core/indexes/base.py", line 3805, in get_loc return self._engine.get_loc(casted_key) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "index.pyx", line 167, in pandas._libs.index.IndexEngine.get_loc File "index.pyx", line 196, in pandas._libs.index.IndexEngine.get_loc File "pandas/_libs/hashtable_class_helper.pxi", line 7081, in pandas._libs.hashtable.PyObjectHashTable.get_item File "pandas/_libs/hashtable_class_helper.pxi", line 7089, in pandas._libs.hashtable.PyObjectHashTable.get_item KeyError: 'Adj Close'
The above exception was the direct cause of the following exception:
Traceback (most recent call last): File "/filename", line 261, in
optimization_df = new_df[optimization_start_date:optimization_end_date]['Adj Close'][cols]