Skip to content

Commit d636a74

Browse files
committed
Merge pull request #11895 from IamGianluca/GH11859
BUG: masking empty DataFrame
2 parents db43468 + f874d10 commit d636a74

File tree

3 files changed

+9
-1
lines changed

3 files changed

+9
-1
lines changed

doc/source/whatsnew/v0.18.0.txt

+1
Original file line numberDiff line numberDiff line change
@@ -346,3 +346,4 @@ Bug Fixes
346346

347347
- Bug in ``read_sql`` with pymysql connections failing to return chunked data (:issue:`11522`)
348348

349+
- Bug in ``DataFrame`` when masking an empty ``DataFrame`` (:issue:`11859`)

pandas/core/frame.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -2047,7 +2047,7 @@ def _getitem_multilevel(self, key):
20472047
return self._get_item_cache(key)
20482048

20492049
def _getitem_frame(self, key):
2050-
if key.values.dtype != np.bool_:
2050+
if key.values.size and not com.is_bool_dtype(key.values):
20512051
raise ValueError('Must pass DataFrame with boolean values only')
20522052
return self.where(key)
20532053

pandas/tests/test_frame.py

+7
Original file line numberDiff line numberDiff line change
@@ -826,6 +826,13 @@ def test_setitem_empty_frame_with_boolean(self):
826826
df[df > df2] = 47
827827
assert_frame_equal(df, df2)
828828

829+
def test_getitem_empty_frame_with_boolean(self):
830+
# Test for issue #11859
831+
832+
df = pd.DataFrame()
833+
df2 = df[df>0]
834+
assert_frame_equal(df, df2)
835+
829836
def test_delitem_corner(self):
830837
f = self.frame.copy()
831838
del f['D']

0 commit comments

Comments
 (0)