Skip to main content
`Ctrl`+`K`

# pandas.api.extensions.ExtensionArray.factorize

ExtensionArray.factorize(use_na_sentinel=True)

  Encode the extension array as an enumerated type.

  This method encodes the array values as integer codes that index into an array of unique values. Missing values can be encoded with a sentinel value of -1.

  Parameters:
    use_na_sentinel bool, default True

      If True, the sentinel -1 will be used for NaN values. If False, NaN values will be encoded as non-negative integers and will not drop the NaN from the uniques of the values.

  Returns:
    codes ndarray

      An integer NumPy array that’s an indexer into the original ExtensionArray.

    uniques ExtensionArray

      An ExtensionArray containing the unique values of self.

      Note

      uniques will not contain an entry for the NA value of the ExtensionArray if there are any missing values present in self.

  See also

  `factorize`

    Top-level factorize method that dispatches here.

  Notes

  `pandas.factorize()` offers a sort keyword as well.

  Examples

      >>> idx1 = pd.PeriodIndex(
      ...     ["2014-01", "2014-01", "2014-02", "2014-02", "2014-03", "2014-03"],
      ...     freq="M",
      ... )
      >>> arr, idx = idx1.factorize()
      >>> arr
      array([0, 0, 1, 1, 2, 2])
      >>> idx
      PeriodIndex(['2014-01', '2014-02', '2014-03'], dtype='period[M]')