ExtensionArray.take(indices, allow_fill=False, fill_value=None) [source]
Take elements from an array.
| Parameters: |
indices : sequence of integers Indices to be taken. allow_fill : bool, default False How to handle negative values in
fill_value : any, optional Fill value to use for NA-indices when For many ExtensionArrays, there will be two representations of |
|---|---|
| Returns: |
|
| Raises: |
IndexError When the indices are out of bounds for the array. ValueError When |
See also
numpy.take, pandas.api.extensions.take
ExtensionArray.take is called by Series.__getitem__, .loc, iloc, when indices is a sequence of values. Additionally, it’s called by Series.reindex(), or any other method that causes realignemnt, with a fill_value.
Here’s an example implementation, which relies on casting the extension array to object dtype. This uses the helper method pandas.api.extensions.take().
def take(self, indices, allow_fill=False, fill_value=None):
from pandas.core.algorithms import take
# If the ExtensionArray is backed by an ndarray, then
# just pass that here instead of coercing to object.
data = self.astype(object)
if allow_fill and fill_value is None:
fill_value = self.dtype.na_value
# fill value should always be translated from the scalar
# type for the array, to the physical storage type for
# the data, before passing to take.
result = take(data, indices, fill_value=fill_value,
allow_fill=allow_fill)
return self._from_sequence(result)
© 2008–2012, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
http://pandas.pydata.org/pandas-docs/version/0.23.4/generated/pandas.api.extensions.ExtensionArray.take.html