當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python pandas.api.extensions.ExtensionArray.take用法及代碼示例


用法:

ExtensionArray.take(indices, *, allow_fill=False, fill_value=None)

從數組中獲取元素。

參數

indicesint 序列或 int 的一維 np.ndarray

要采取的指標。

allow_fill布爾值,默認為 False

如何處理 indices 中的負值。

  • False:indices 中的負值表示從右側開始的位置索引(默認值)。這類似於 numpy.take()

  • True:indices 中的負值表示缺失值。這些值設置為 fill_value 。任何其他負值都會引發 ValueError

fill_value任何,可選

allow_fill 為 True 時用於 NA-indices 的填充值。這可能是 None ,在這種情況下,使用類型的默認 NA 值 self.dtype.na_value

對於許多 ExtensionArrays,將有兩種表示 fill_value :一個 user-facing “boxed” 標量和一個低級物理 NA 值。 fill_value 應該是 user-facing 版本,並且實現應該處理將其轉換為物理版本以便在必要時處理鏡頭。

返回

擴展數組

拋出

索引錯誤

當索引超出數組的範圍時。

ValueError

indices 包含除-1 以外的負值且allow_fill 為True 時。

注意

ExtensionArray.take 由 Series.__getitem__.lociloc 調用,當 indices 是一係列值時。此外,它由 Series.reindex() 或任何其他導致重新對齊的方法調用,帶有 fill_value

例子

這是一個示例實現,它依賴於將擴展數組轉換為對象 dtype。這使用了輔助方法 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, dtype=self.dtype)

相關用法


注:本文由純淨天空篩選整理自pandas.pydata.org大神的英文原創作品 pandas.api.extensions.ExtensionArray.take。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。