masking empty DataFrame · Issue #10126 · pandas-dev/pandas (original) (raw)

In pandas 0.16.1, I get a ValueError when trying to mask an empty DataFrame:

import pandas as pd df = pd.DataFrame() df[df>0] Traceback (most recent call last):

File "", line 1, in df[df>0]

File "C:\Python27\lib\site-packages\pandas\core\frame.py", line 1787, in getitem return self._getitem_frame(key)

File "C:\Python27\lib\site-packages\pandas\core\frame.py", line 1859, in _getitem_frame raise ValueError('Must pass DataFrame with boolean values only')

ValueError: Must pass DataFrame with boolean values only

Using 'where' works as expected:

df.where(df>0) Out[4]: Empty DataFrame Columns: [] Index: []

Also, masking a Series works as expected:

ts = pd.Series() ts[ts>0] Out[6]: Series([], dtype: float64)