class pandas.api.extensions.ExtensionDtype
[source]
A custom data type, to be paired with an ExtensionArray.
New in version 0.23.0.
See also
extensions.register_extension_dtype
extensions.ExtensionArray
The interface includes the following abstract methods that must be implemented by subclasses:
The following attributes influence the behavior of the dtype in pandas operations
Optionally one can override construct_array_type for construction with the name of this dtype via the Registry. See extensions.register_extension_dtype()
.
The na_value
class attribute can be used to set the default NA value for this type. numpy.nan
is used by default.
ExtensionDtypes are required to be hashable. The base class provides a default implementation, which relies on the _metadata
class attribute. _metadata
should be a tuple containing the strings that define your data type. For example, with PeriodDtype
that’s the freq
attribute.
If you have a parametrized dtype you should set the ``_metadata`` class property.
Ideally, the attributes in _metadata
will match the parameters to your ExtensionDtype.__init__
(if any). If any of the attributes in _metadata
don’t implement the standard __eq__
or __hash__
, the default implementations here will not work.
Changed in version 0.24.0: Added _metadata
, __hash__
, and changed the default definition of __eq__
.
This class does not inherit from ‘abc.ABCMeta’ for performance reasons. Methods and properties required by the interface raise pandas.errors.AbstractMethodError
and no register
method is provided for registering virtual subclasses.
kind | A character code (one of ‘biufcmMOSUV’), default ‘O’ |
na_value | Default NA value to use for this type. |
name | A string identifying the data type. |
names | Ordered list of field names, or None if there are no fields. |
type | The scalar type for the array, e.g. |
construct_array_type () | Return the array type associated with this dtype |
construct_from_string (string) | Construct this type from a string. |
is_dtype (dtype) | Check if we match ‘dtype’. |
© 2008–2012, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/0.25.0/reference/api/pandas.api.extensions.ExtensionDtype.html