Skip to content

Commit ccd593f

Browse files
committed
BUG: check edge case with GH7190
1 parent df895ef commit ccd593f

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

pandas/core/indexing.py

+4
Original file line numberDiff line numberDiff line change
@@ -825,6 +825,10 @@ def _getitem_nested_tuple(self, tup):
825825
obj = getattr(obj, self.name)._getitem_axis(key, axis=axis, validate_iterable=True)
826826
axis += 1
827827

828+
# if we have a scalar, we are done
829+
if np.isscalar(obj):
830+
break
831+
828832
# has the dim of the obj changed?
829833
# GH 7199
830834
if obj.ndim < current_ndim:

pandas/tests/test_indexing.py

+11-1
Original file line numberDiff line numberDiff line change
@@ -611,9 +611,19 @@ def test_loc_setitem_multiindex(self):
611611

612612
# GH7190
613613
index = pd.MultiIndex.from_product([np.arange(0,100), np.arange(0, 80)], names=['time', 'firm'])
614-
df = DataFrame(np.nan,columns=['A', 'w', 'l', 'a', 'x', 'X', 'd', 'profit'], index=index)
615614
t, n = 0, 2
616615

616+
df = DataFrame(np.nan,columns=['A', 'w', 'l', 'a', 'x', 'X', 'd', 'profit'], index=index)
617+
df.loc[(t,n),'X'] = 0
618+
result = df.loc[(t,n),'X']
619+
self.assertEqual(result, 0)
620+
621+
df = DataFrame(-999,columns=['A', 'w', 'l', 'a', 'x', 'X', 'd', 'profit'], index=index)
622+
df.loc[(t,n),'X'] = 0
623+
result = df.loc[(t,n),'X']
624+
self.assertEqual(result, 0)
625+
626+
df = DataFrame(columns=['A', 'w', 'l', 'a', 'x', 'X', 'd', 'profit'], index=index)
617627
df.loc[(t,n),'X'] = 0
618628
result = df.loc[(t,n),'X']
619629
self.assertEqual(result, 0)

0 commit comments

Comments
 (0)