Skip to content

Commit 5122eb7

Browse files
phoflmeeseeksmachine
authored andcommitted
Backport PR pandas-dev#48619: REGR: Loc.setitem with enlargement raises for nested data
1 parent f83e2fe commit 5122eb7

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

pandas/core/indexing.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -2106,7 +2106,9 @@ def _setitem_with_indexer_missing(self, indexer, value):
21062106
return self._setitem_with_indexer(new_indexer, value, "loc")
21072107

21082108
# this preserves dtype of the value and of the object
2109-
if is_valid_na_for_dtype(value, self.obj.dtype):
2109+
if not is_scalar(value):
2110+
new_dtype = None
2111+
elif is_valid_na_for_dtype(value, self.obj.dtype):
21102112
value = na_value_for_dtype(self.obj.dtype, compat=False)
21112113
new_dtype = maybe_promote(self.obj.dtype, value)[0]
21122114
elif isna(value):

pandas/tests/series/indexing/test_indexing.py

+9
Original file line numberDiff line numberDiff line change
@@ -358,6 +358,15 @@ def test_loc_boolean_indexer_miss_matching_index():
358358
ser.loc[indexer]
359359

360360

361+
def test_loc_setitem_nested_data_enlargement():
362+
# GH#48614
363+
df = DataFrame({"a": [1]})
364+
ser = Series({"label": df})
365+
ser.loc["new_label"] = df
366+
expected = Series({"label": df, "new_label": df})
367+
tm.assert_series_equal(ser, expected)
368+
369+
361370
class TestDeprecatedIndexers:
362371
@pytest.mark.parametrize("key", [{1}, {1: 1}])
363372
def test_getitem_dict_and_set_deprecated(self, key):

0 commit comments

Comments
 (0)