Closed
Description
Pandas version checks
-
I have checked that this issue has not already been reported.
-
I have confirmed this bug exists on the latest version of pandas.
-
I have confirmed this bug exists on the main branch of pandas.
Reproducible Example
>>> import pandas as pd
>>> df = pd.DataFrame({'a':[1]})
>>> s = pd.Series({'label': df}) # This works
>>> s.loc['new_label'] = df # This broken
Issue Description
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-5-58528b0c1243> in <module>
----> 1 s.loc['new_label'] = df
.../site-packages/pandas/core/indexing.py in __setitem__(self, key, value)
817
818 iloc = self if self.name == "iloc" else self.obj.iloc
--> 819 iloc._setitem_with_indexer(indexer, value, self.name)
820
821 def _validate_key(self, key, axis: int):
.../site-packages/pandas/core/indexing.py in _setitem_with_indexer(self, indexer, value, name)
1784
1785 if missing:
-> 1786 self._setitem_with_indexer_missing(indexer, value)
1787 return
1788
.../site-packages/pandas/core/indexing.py in _setitem_with_indexer_missing(self, indexer, value)
2114 value = na_value_for_dtype(self.obj.dtype, compat=False)
2115 new_dtype = maybe_promote(self.obj.dtype, value)[0]
-> 2116 elif isna(value):
2117 new_dtype = None
2118 elif not self.obj.empty and not is_object_dtype(self.obj.dtype):
.../site-packages/pandas/core/generic.py in __nonzero__(self)
1524 @final
1525 def __nonzero__(self) -> NoReturn:
-> 1526 raise ValueError(
1527 f"The truth value of a {type(self).__name__} is ambiguous. "
1528 "Use a.empty, a.bool(), a.item(), a.any() or a.all()."
ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
The offending line isna(value)
was added in bd9a6f0#diff-07282871a235456baecd3a55a43339b0da374ca270228b5530f5449aabdca2e1R2099 by @phofl. Would love to see milestone:1.5
on this regression. 😅
Thanks!
Expected Behavior
No crash.
Installed Versions
pandas-1.5.0rc0