(
value: DataFrame | Series, index: Index
)
| 16700 | |
| 16701 | |
| 16702 | def _reindex_for_setitem( |
| 16703 | value: DataFrame | Series, index: Index |
| 16704 | ) -> tuple[ArrayLike, BlockValuesRefs | None]: |
| 16705 | # reindex if necessary |
| 16706 | |
| 16707 | if value.index.equals(index) or not len(index): |
| 16708 | if isinstance(value, Series): |
| 16709 | return value._values, value._references |
| 16710 | return value._values.copy(), None |
| 16711 | |
| 16712 | # GH#4107 |
| 16713 | try: |
| 16714 | reindexed_value = value.reindex(index)._values |
| 16715 | except ValueError as err: |
| 16716 | # raised in MultiIndex.from_tuples, see test_insert_error_msmgs |
| 16717 | if not value.index.is_unique: |
| 16718 | # duplicate axis |
| 16719 | raise err |
| 16720 | |
| 16721 | raise TypeError( |
| 16722 | "incompatible index of inserted column with frame index" |
| 16723 | ) from err |
| 16724 | return reindexed_value, None |
no test coverage detected