I'm working through the book Mastering Pandas for Finance and I created the following DataFrame for the S&P 500:
sp500 = pd.read_csv("sp500.csv", index='Symbol', usecols=[0, 2, 3, 7])
Returns the following DataFrame:
A part of the exercise is to then display the dataframe with only select columns using the following code:
$ sp500[[1, 2]].head(3)
Which should produce the following DataFrame:
S&P 500 DataFrame with Indexed Columns Only
When I run the code I get the following error:
KeyError: '[1 2] not in index'
Traceback
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-67-9993ec8d3122> in <module>()
----> 1 sp500[[1, 2]].head(3)
~/anaconda3/lib/python3.6/site-packages/pandas/core/frame.py in __getitem__(self, key)
1956 if isinstance(key, (Series, np.ndarray, Index, list)):
1957 # either boolean or fancy integer index
-> 1958 return self._getitem_array(key)
1959 elif isinstance(key, DataFrame):
1960 return self._getitem_frame(key)
~/anaconda3/lib/python3.6/site-packages/pandas/core/frame.py in _getitem_array(self, key)
2000 return self.take(indexer, axis=0, convert=False)
2001 else:
-> 2002 indexer = self.loc._convert_to_indexer(key, axis=1)
2003 return self.take(indexer, axis=1, convert=True)
2004
~/anaconda3/lib/python3.6/site-packages/pandas/core/indexing.py in _convert_to_indexer(self, obj, axis, is_setter)
1229 mask = check == -1
1230 if mask.any():
-> 1231 raise KeyError('%s not in index' % objarr[mask])
1232
1233 return _values_from_object(indexer)
KeyError: '[1 2] not in index'