Closed
Description
Setup:
import pandas as pd
df = pd.DataFrame({True: [1,2,5,9],
False: [6,1,13,8]})
df[True]
and df[False]
work fine; but df[[True,False]]
throws an exception:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-9-a28f55cd0379> in <module>()
----> 1 df[[True,False]]
/Users/username/pandasenv/lib/python2.7/site-packages/pandas/core/frame.pyc in __getitem__(self, key)
1772 if isinstance(key, (Series, np.ndarray, Index, list)):
1773 # either boolean or fancy integer index
-> 1774 return self._getitem_array(key)
1775 elif isinstance(key, DataFrame):
1776 return self._getitem_frame(key)
/Users/username/pandasenv/lib/python2.7/site-packages/pandas/core/frame.pyc in _getitem_array(self, key)
1809 elif len(key) != len(self.index):
1810 raise ValueError('Item wrong length %d instead of %d.' %
-> 1811 (len(key), len(self.index)))
1812 # _check_bool_indexer will throw exception if Series key cannot
1813 # be reindexed to match DataFrame rows
ValueError: Item wrong length 2 instead of 4.
On the other hand, this works fine:
df = pd.DataFrame({'True': [1,2,5,9],
'False': [6,1,13,8]})
df[['True','False']]
Probably relevant to: #9595