MCPcopy
hub / github.com/pandas-dev/pandas / insert

Method insert

pandas/core/internals/managers.py:1544–1593  ·  view source on GitHub ↗

Insert item at selected position. Parameters ---------- loc : int item : hashable value : np.ndarray or ExtensionArray refs : The reference tracking object of the value to set.

(self, loc: int, item: Hashable, value: ArrayLike, refs=None)

Source from the content-addressed store, hash-verified

1542 self.iset(loc, new_mgr._block.values, inplace=True)
1543
1544 def insert(self, loc: int, item: Hashable, value: ArrayLike, refs=None) -> None:
1545 """
1546 Insert item at selected position.
1547
1548 Parameters
1549 ----------
1550 loc : int
1551 item : hashable
1552 value : np.ndarray or ExtensionArray
1553 refs : The reference tracking object of the value to set.
1554 """
1555 new_axis = self.items.insert(loc, item)
1556
1557 if value.ndim == 2:
1558 value = value.T
1559 if len(value) > 1:
1560 raise ValueError(
1561 f"Expected a 1D array, got an array with shape {value.T.shape}"
1562 )
1563 else:
1564 value = ensure_block_shape(value, ndim=self.ndim)
1565
1566 bp = BlockPlacement(slice(loc, loc + 1))
1567 block = new_block_2d(values=value, placement=bp, refs=refs)
1568
1569 if not len(self.blocks):
1570 # Fastpath
1571 self._blklocs = np.array([0], dtype=np.intp)
1572 self._blknos = np.array([0], dtype=np.intp)
1573 else:
1574 self._insert_update_mgr_locs(loc)
1575 self._insert_update_blklocs_and_blknos(loc)
1576
1577 self.axes[0] = new_axis
1578 self.blocks += (block,)
1579
1580 self._known_consolidated = False
1581
1582 if (
1583 get_option("performance_warnings")
1584 and sum(not block.is_extension for block in self.blocks) > 100
1585 ):
1586 warnings.warn(
1587 "DataFrame is highly fragmented. This is usually the result "
1588 "of calling `frame.insert` many times, which has poor performance. "
1589 "Consider joining all columns at once using pd.concat(axis=1) "
1590 "instead. To get a de-fragmented frame, use `newframe = frame.copy()`",
1591 PerformanceWarning,
1592 stacklevel=find_stack_level(),
1593 )
1594
1595 def _insert_update_mgr_locs(self, loc) -> None:
1596 """

Callers

nothing calls this directly

Calls 8

ensure_block_shapeFunction · 0.90
new_block_2dFunction · 0.90
get_optionFunction · 0.90
find_stack_levelFunction · 0.90
sumFunction · 0.85
arrayMethod · 0.45

Tested by

no test coverage detected