массивы pandas, скаляры и типы данных#

Объекты#

Для большинства типов данных pandas использует массивы NumPy в качестве конкретных объектов, содержащихся в Index, Series, или DataFrame.

Для некоторых типов данных pandas расширяет систему типов NumPy. Строковые псевдонимы для этих типов можно найти в dtypes.

Тип данных

Тип данных pandas

Скаляр

Массив

Дата-время с учетом часового пояса

DatetimeTZDtype

Timestamp

Даты и время

Timedeltas

(нет)

Timedelta

Timedeltas

Период (временные промежутки)

PeriodDtype

Period

Периоды

Интервалы

IntervalDtype

Interval

Интервалы

Nullable Integer

Int64Dtype, …

(нет)

Nullable integer

Nullable Float

Float64Dtype, …

(нет)

Nullable float

Категориальный

CategoricalDtype

(нет)

Категориальные данные

Разреженный

SparseDtype

(нет)

Разреженный

Строки

StringDtype

str

Строки

Nullable Boolean

BooleanDtype

bool

Nullable Boolean

PyArrow

ArrowDtype

Python Scalars или NA

PyArrow

pandas и сторонние библиотеки могут расширять систему типов NumPy (см. Расширенные типы). Верхнеуровневый array() Метод может быть использован для создания нового массива, который может быть сохранен в Series, Index, или как столбец в DataFrame.

array(data[, dtype, copy])

Создать массив.

PyArrow#

Предупреждение

Эта функция является экспериментальной, и API может измениться в будущих выпусках без предупреждения.

The arrays.ArrowExtensionArray поддерживается pyarrow.ChunkedArray с pyarrow.DataType вместо массива NumPy и типа данных. .dtype из arrays.ArrowExtensionArray является ArrowDtype.

Pyarrow предоставляет аналогичные массивы и тип данных поддержка как в NumPy, включая поддержку нулевых значений первого класса для всех типов данных, неизменяемость и многое другое.

В таблице ниже показаны эквивалентные на основе pyarrow (pa), расширение pandas и numpy (np) типы, которые распознаются pandas. Pyarrow-поддерживаемые типы ниже должны быть переданы в ArrowDtype для распознавания pandas, например, pd.ArrowDtype(pa.bool_())

тип PyArrow

расширенный тип pandas

Тип NumPy

pyarrow.bool_()

BooleanDtype

np.bool_

pyarrow.int8()

Int8Dtype

np.int8

pyarrow.int16()

Int16Dtype

np.int16

pyarrow.int32()

Int32Dtype

np.int32

pyarrow.int64()

Int64Dtype

np.int64

pyarrow.uint8()

UInt8Dtype

np.uint8

pyarrow.uint16()

UInt16Dtype

np.uint16

pyarrow.uint32()

UInt32Dtype

np.uint32

pyarrow.uint64()

UInt64Dtype

np.uint64

pyarrow.float32()

Float32Dtype

np.float32

pyarrow.float64()

Float64Dtype

np.float64

pyarrow.time32()

(нет)

(нет)

pyarrow.time64()

(нет)

(нет)

pyarrow.timestamp()

DatetimeTZDtype

np.datetime64

pyarrow.date32()

(нет)

(нет)

pyarrow.date64()

(нет)

(нет)

pyarrow.duration()

(нет)

np.timedelta64

pyarrow.binary()

(нет)

(нет)

pyarrow.string()

StringDtype

np.str_

pyarrow.decimal128()

(нет)

(нет)

pyarrow.list_()

(нет)

(нет)

pyarrow.map_()

(нет)

(нет)

pyarrow.dictionary()

CategoricalDtype

(нет)

Примечание

Поддержка строк на основе Pyarrow предоставляется как pd.StringDtype("pyarrow") и pd.ArrowDtype(pa.string()). pd.StringDtype("pyarrow") описан ниже в раздел строк и будет возвращен, если строковый псевдоним "string[pyarrow]" указан. pd.ArrowDtype(pa.string()) обычно имеет лучшую совместимость с ArrowDtype разных типов.

Хотя отдельные значения в arrays.ArrowExtensionArray хранятся как объекты PyArrow, скаляры являются возвращён как скаляры Python, соответствующие типу данных, например, PyArrow int64 будет возвращен как Python int, или NA для пропущенных значений.

arrays.ArrowExtensionArray(values)

Pandas ExtensionArray, поддерживаемый PyArrow ChunkedArray.

ArrowDtype(pyarrow_dtype)

ExtensionDtype для типов данных PyArrow.

Для получения дополнительной информации, пожалуйста, смотрите Руководство пользователя PyArrow

Даты и время#

NumPy не может нативно представлять даты и время с учетом часового пояса. pandas поддерживает это с помощью arrays.DatetimeArray расширенный массив, который может содержать значения без часового пояса или с часовым поясом.

Timestamp, подкласс datetime.datetime, является скалярным типом pandas для данных datetime без часового пояса или с часовым поясом. NaT это пропущенное значение для данных даты и времени.

Timestamp([ts_input, year, month, day, ...])

Замена pandas для объекта python datetime.datetime.

Свойства#

Timestamp.asm8

Возвращает формат numpy datetime64 в наносекундах.

Timestamp.day

Timestamp.dayofweek

Возвращает день недели.

Timestamp.day_of_week

Возвращает день недели.

Timestamp.dayofyear

Возвращает день года.

Timestamp.day_of_year

Возвращает день года.

Timestamp.days_in_month

Возвращает количество дней в месяце.

Timestamp.daysinmonth

Возвращает количество дней в месяце.

Timestamp.fold

Timestamp.hour

Timestamp.is_leap_year

Вернуть True, если год високосный.

Timestamp.is_month_end

Проверить, является ли дата последним днем месяца.

Timestamp.is_month_start

Проверить, является ли дата первым днем месяца.

Timestamp.is_quarter_end

Проверить, является ли дата последним днем квартала.

Timestamp.is_quarter_start

Проверить, является ли дата первым днем квартала.

Timestamp.is_year_end

Возвращает True, если дата является последним днем года.

Timestamp.is_year_start

Возвращает True, если дата является первым днем года.

Timestamp.max

Timestamp.microsecond

Timestamp.min

Timestamp.minute

Timestamp.month

Timestamp.nanosecond

Timestamp.quarter

Возвращает квартал года.

Timestamp.resolution

Timestamp.second

Timestamp.tz

Псевдоним для tzinfo.

Timestamp.tzinfo

Timestamp.unit

Аббревиатура, связанная с self._creso.

Timestamp.value

Timestamp.week

Возвращает номер недели в году.

Timestamp.weekofyear

Возвращает номер недели в году.

Timestamp.year

Методы#

Timestamp.as_unit(unit[, round_ok])

Преобразует базовое представление int64 в заданную единицу измерения.

Timestamp.astimezone(tz)

Преобразовать Timestamp с учетом часового пояса в другой часовой пояс.

Timestamp.ceil(freq[, ambiguous, nonexistent])

Возвращает новый Timestamp, округленный до этого разрешения.

Timestamp.combine(дата, время)

Объединить дату, время в datetime с теми же полями даты и времени.

Timestamp.ctime()

Возвращает строку в стиле ctime().

Timestamp.date()

Возвращает объект даты с тем же годом, месяцем и днем.

Timestamp.day_name([locale])

Возвращает название дня Timestamp с указанной локалью.

Timestamp.dst()

Возвращает корректировку летнего времени (DST).

Timestamp.floor(freq[, ambiguous, nonexistent])

Возвращает новый Timestamp, округлённый до этого разрешения.

Timestamp.fromordinal(ordinal[, tz])

Создать метку времени из пролептического григорианского порядкового номера.

Timestamp.fromtimestamp(ts)

Преобразовать timestamp[, tz] в локальное время tz из POSIX timestamp.

Timestamp.isocalendar()

Возвращает именованный кортеж, содержащий ISO год, номер недели и день недели.

Timestamp.isoformat([sep, timespec])

Возвращает время, отформатированное в соответствии с ISO 8601.

Timestamp.isoweekday()

Возвращает день недели, представленный датой.

Timestamp.month_name([locale])

Возвращает название месяца Timestamp с указанной локалью.

Timestamp.normalize()

Нормализация Timestamp до полуночи с сохранением информации о часовом поясе.

Timestamp.now([tz])

Возвращает новый объект Timestamp, представляющий текущее время в локальном часовом поясе tz.

Timestamp.replace([year, month, day, hour, ...])

Реализует datetime.replace, обрабатывает наносекунды.

Timestamp.round(freq[, ambiguous, nonexistent])

Округлить Timestamp до указанного разрешения.

Timestamp.strftime(формат)

Возвращает форматированную строку Timestamp.

Timestamp.strptime(строка, формат)

Функция не реализована.

Timestamp.time()

Возвращает объект времени с тем же временем, но с tzinfo=None.

Timestamp.timestamp()

Возврат временной метки POSIX как числа с плавающей точкой.

Timestamp.timetuple()

Возвращает кортеж времени, совместимый с time.localtime().

Timestamp.timetz()

Возвращает объект времени с тем же временем и tzinfo.

Timestamp.to_datetime64()

Возвращает объект numpy.datetime64 с той же точностью.

Timestamp.to_numpy([dtype, copy])

Преобразовать метку времени в NumPy datetime64.

Timestamp.to_julian_date()

Преобразовать TimeStamp в юлианскую дату.

Timestamp.to_period([freq])

Возвращает период, наблюдением которого является эта временная метка.

Timestamp.to_pydatetime([предупреждение])

Преобразовать объект Timestamp в нативный объект datetime Python.

Timestamp.today([tz])

Возвращает текущее время в локальном часовом поясе.

Timestamp.toordinal()

Возвращает пролептический григорианский порядковый номер.

Timestamp.tz_convert(tz)

Преобразовать Timestamp с учетом часового пояса в другой часовой пояс.

Timestamp.tz_localize(tz[, ambiguous, ...])

Локализует метку времени в часовом поясе.

Timestamp.tzname()

Возвращает название часового пояса.

Timestamp.utcfromtimestamp(ts)

Создать datetime с учетом часового пояса UTC из POSIX-метки времени.

Timestamp.utcnow()

Возвращает новый Timestamp, представляющий день и время в UTC.

Timestamp.utcoffset()

Возвращает смещение UTC.

Timestamp.utctimetuple()

Возвращает кортеж времени UTC, совместимый с time.localtime().

Timestamp.weekday()

Возвращает день недели, представленный датой.

Коллекция временных меток может храниться в arrays.DatetimeArray. Для данных с учётом часового пояса .dtype из arrays.DatetimeArray является DatetimeTZDtype. Для данных без часового пояса, np.dtype("datetime64[ns]") используется.

Если данные учитывают часовой пояс, то каждое значение в массиве должно иметь один и тот же часовой пояс.

arrays.DatetimeArray(values[, dtype, freq, copy])

Pandas ExtensionArray для данных даты и времени без часового пояса или с часовым поясом.

DatetimeTZDtype([unit, tz])

ExtensionDtype для данных datetime с учётом часового пояса.

Timedeltas#

NumPy может нативно представлять временные интервалы. pandas предоставляет Timedelta для симметрии с Timestamp. NaT является пропущенным значением для данных типа timedelta.

Timedelta([значение, единица])

Представляет длительность, разницу между двумя датами или временами.

Свойства#

Timedelta.asm8

Вернуть скалярное представление массива numpy timedelta64.

Timedelta.components

Возвращает именованный кортеж, подобный компонентам.

Timedelta.days

Возвращает дни timedelta.

Timedelta.max

Timedelta.microseconds

Timedelta.min

Timedelta.nanoseconds

Возвращает количество наносекунд (n), где 0 <= n < 1 микросекунда.

Timedelta.resolution

Timedelta.seconds

Возвращает общее количество часов, минут и секунд timedelta в секундах.

Timedelta.unit

Timedelta.value

Timedelta.view(dtype)

Совместимость представления массива.

Методы#

Timedelta.as_unit(unit[, round_ok])

Преобразовать базовое представление int64 в заданную единицу измерения.

Timedelta.ceil(freq)

Вернуть новый Timedelta, округленный до этого разрешения.

Timedelta.floor(freq)

Вернуть новый Timedelta, округленный вниз до этого разрешения.

Timedelta.isoformat()

Форматировать Timedelta как длительность ISO 8601.

Timedelta.round(freq)

Округлить Timedelta до указанной точности.

Timedelta.to_pytimedelta()

Преобразовать объект pandas Timedelta в python datetime.timedelta объект.

Timedelta.to_timedelta64()

Возвращает объект numpy.timedelta64 с точностью 'ns'.

Timedelta.to_numpy([dtype, copy])

Преобразовать Timedelta в NumPy timedelta64.

Timedelta.total_seconds()

Общее количество секунд в продолжительности.

Коллекция Timedelta может храниться в TimedeltaArray.

arrays.TimedeltaArray(values[, dtype, freq, ...])

Pandas ExtensionArray для данных временных интервалов.

Периоды#

pandas представляет промежутки времени как Period объекты.

Period#

Period([value, freq, ordinal, year, month, ...])

Представляет период времени.

Свойства#

Period.day

Получить день месяца, на который приходится Period.

Period.dayofweek

День недели, в который попадает период, с понедельником=0 и воскресеньем=6.

Period.day_of_week

День недели, в который попадает период, с понедельником=0 и воскресеньем=6.

Period.dayofyear

Возвращает день года.

Period.day_of_year

Возвращает день года.

Period.days_in_month

Получить общее количество дней в месяце, на который приходится этот период.

Period.daysinmonth

Получить общее количество дней месяца, на которые приходится этот период.

Period.end_time

Получить Timestamp для конца периода.

Period.freq

Period.freqstr

Вернуть строковое представление частоты.

Period.hour

Получить компонент часа дня для Period.

Period.is_leap_year

Возвращает True, если год периода является високосным.

Period.minute

Получить минуту часа компонента Period.

Period.month

Возвращает месяц, на который приходится этот Period.

Period.ordinal

Period.quarter

Возвращает квартал, в который попадает этот Period.

Period.qyear

Финансовый год, в котором находится Period, согласно его начальному кварталу.

Period.second

Получите второй компонент периода.

Period.start_time

Получить Timestamp для начала периода.

Period.week

Получить неделю года для данного Period.

Period.weekday

День недели, в который попадает период, с понедельником=0 и воскресеньем=6.

Period.weekofyear

Получить неделю года для данного Period.

Period.year

Возвращает год, на который приходится этот Period.

Методы#

Period.asfreq(freq[, how])

Преобразование Period в желаемую частоту, в начале или конце интервала.

Period.now(freq)

Возвращает период текущей даты.

Period.strftime(fmt)

Возвращает форматированное строковое представление Period.

Period.to_timestamp([freq, how])

Вернуть представление Timestamp для Period.

Коллекция Period может храниться в arrays.PeriodArray. Каждый период в arrays.PeriodArray должны иметь одинаковый freq.

arrays.PeriodArray(values[, dtype, freq, copy])

Pandas ExtensionArray для хранения данных Period.

PeriodDtype(freq)

ExtensionDtype для данных Period.

Интервалы#

Произвольные интервалы могут быть представлены как Interval объекты.

Interval

Неизменяемый объект, реализующий Interval, ограниченный интервал, похожий на срез.

Свойства#

Interval.closed

Строка, описывающая включенную сторону интервалов.

Interval.closed_left

Проверить, закрыт ли интервал с левой стороны.

Interval.closed_right

Проверить, закрыт ли интервал с правой стороны.

Interval.is_empty

Указывает, является ли интервал пустым, то есть не содержит точек.

Interval.left

Левая граница интервала.

Interval.length

Возвращает длину интервала.

Interval.mid

Возвращает середину интервала.

Interval.open_left

Проверить, открыт ли интервал с левой стороны.

Interval.open_right

Проверяет, открыт ли интервал с правой стороны.

Interval.overlaps(other)

Проверить, перекрываются ли два объекта Interval.

Interval.right

Правая граница интервала.

Коллекция интервалов может храниться в arrays.IntervalArray.

arrays.IntervalArray(data[, closed, dtype, ...])

Массив Pandas для интервальных данных, которые закрыты с одной стороны.

IntervalDtype([subtype, closed])

ExtensionDtype для интервальных данных.

Nullable integer#

numpy.ndarray не может нативно представлять целочисленные данные с пропущенными значениями. pandas предоставляет это через arrays.IntegerArray.

arrays.IntegerArray(values, mask[, copy])

Массив целочисленных (опционально пропущенных) значений.

Int8Dtype()

ExtensionDtype для целочисленных данных int8.

Int16Dtype()

ExtensionDtype для целочисленных данных int16.

Int32Dtype()

ExtensionDtype для целочисленных данных int32.

Int64Dtype()

ExtensionDtype для целочисленных данных int64.

UInt8Dtype()

ExtensionDtype для целочисленных данных uint8.

UInt16Dtype()

ExtensionDtype для целочисленных данных uint16.

UInt32Dtype()

ExtensionDtype для целочисленных данных uint32.

UInt64Dtype()

ExtensionDtype для целочисленных данных uint64.

Nullable float#

arrays.FloatingArray(values, mask[, copy])

Массив значений с плавающей точкой (опционально отсутствующих).

Float32Dtype()

ExtensionDtype для данных float32.

Float64Dtype()

ExtensionDtype для данных float64.

Категориальные данные#

pandas определяет пользовательский тип данных для представления данных, которые могут принимать только ограниченный, фиксированный набор значений. Тип данных (dtype) для Categorical может быть описано с помощью CategoricalDtype.

CategoricalDtype([категории, упорядоченные])

Тип для категориальных данных с категориями и упорядоченностью.

CategoricalDtype.categories

An Index содержащий уникальные разрешенные категории.

CategoricalDtype.ordered

Имеют ли категории упорядоченное отношение.

Категориальные данные могут храниться в pandas.Categorical

Categorical(values[, categories, ordered, ...])

Представляет категориальную переменную в классическом стиле R / S-plus.

Альтернатива Categorical.from_codes() конструктор может использоваться, когда у вас уже есть категории и целочисленные коды:

Categorical.from_codes(codes[, categories, ...])

Создать категориальный тип из кодов и категорий или dtype.

Информация о типе данных доступна на Categorical

Categorical.dtype

The CategoricalDtype для этого экземпляра.

Categorical.categories

Категории этой категориальной переменной.

Categorical.ordered

Имеют ли категории упорядоченное отношение.

Categorical.codes

Коды категорий этого категориального индекса.

np.asarray(categorical) работает, реализуя интерфейс массива. Учтите, что это преобразует Categorical обратно в массив NumPy, поэтому информация о категориях и порядке не сохраняется!

Categorical.__array__([dtype, copy])

Интерфейс массива numpy.

A Categorical может храниться в Series или DataFrame. Чтобы создать Series типа category, используйте cat = s.astype(dtype) или Series(..., dtype=dtype) где dtype является либо

Если Series имеет тип данных CategoricalDtype, Series.cat может использоваться для изменения категориальных данных. См. Категориальный аксессор подробнее.

Разреженный#

Данные, где одно значение повторяется много раз (например, 0 или NaN) может эффективно храниться как arrays.SparseArray.

arrays.SparseArray(data[, sparse_index, ...])

ExtensionArray для хранения разреженных данных.

SparseDtype([тип_данных, значение_заполнения])

Тип данных для хранения в SparseArray.

The Series.sparse аксессор может использоваться для доступа к атрибутам и методам, специфичным для разреженных данных, если Series содержит разреженные значения. См. Sparse аксессор и руководство пользователя подробнее.

Строки#

При работе с текстовыми данными, где каждый допустимый элемент является строкой или пропущенным значением, мы рекомендуем использовать StringDtype (с псевдонимом "string").

arrays.StringArray(values[, copy])

Расширенный массив для строковых данных.

arrays.ArrowStringArray(values)

Расширенный массив для строковых данных в pyarrow.ChunkedArray.

StringDtype([storage, na_value])

Расширенный тип данных для строковых данных.

The Series.str аксессор доступен для Series поддерживается arrays.StringArray. См. Обработка строк подробнее.

Nullable Boolean#

Логический тип данных (с псевдонимом "boolean") предоставляет поддержку для хранения логических данных (True, False) с пропущенными значениями, что невозможно с типом bool numpy.ndarray.

arrays.BooleanArray(values, mask[, copy])

Массив булевых данных (True/False) с пропущенными значениями.

BooleanDtype()

Расширенный тип данных для булевых данных.

Утилиты#

Конструкторы#

api.types.union_categoricals(to_union[, ...])

Объединение спискообразных категориальных объектов с объединением категорий.

api.types.infer_dtype(value[, skipna])

Возвращает строковую метку типа скаляра или списко-подобного значения.

api.types.pandas_dtype(dtype)

Преобразовать входные данные в объект dtype pandas или объект dtype numpy.

Интроспекция типов данных#

api.types.is_any_real_numeric_dtype(arr_or_dtype)

Проверить, является ли предоставленный массив или тип данных типом данных вещественного числа.

api.types.is_bool_dtype(arr_or_dtype)

Проверяет, является ли предоставленный массив или тип данных булевым типом.

api.types.is_categorical_dtype(arr_or_dtype)

(УСТАРЕЛО) Проверить, является ли массивоподобный объект или тип данных категориальным типом.

api.types.is_complex_dtype(arr_or_dtype)

Проверить, является ли предоставленный массив или тип данных комплексным типом.

api.types.is_datetime64_any_dtype(arr_or_dtype)

Проверить, является ли предоставленный массив или dtype типом datetime64.

api.types.is_datetime64_dtype(arr_or_dtype)

Проверить, является ли массивоподобный объект или тип данных типом datetime64.

api.types.is_datetime64_ns_dtype(arr_or_dtype)

Проверить, является ли предоставленный массив или тип данных типом datetime64[ns].

api.types.is_datetime64tz_dtype(arr_or_dtype)

(УСТАРЕЛО) Проверить, является ли массивоподобный объект или тип данных типом DatetimeTZDtype.

api.types.is_extension_array_dtype(arr_or_dtype)

Проверьте, является ли объект типом расширенного массива pandas.

api.types.is_float_dtype(arr_or_dtype)

Проверить, является ли предоставленный массив или тип данных типом данных с плавающей точкой.

api.types.is_int64_dtype(arr_or_dtype)

(УСТАРЕЛО) Проверка, является ли предоставленный массив или тип данных типом int64.

api.types.is_integer_dtype(arr_or_dtype)

Проверить, является ли предоставленный массив или тип данных целочисленным типом данных.

api.types.is_interval_dtype(arr_or_dtype)

(УСТАРЕЛО) Проверяет, является ли массивоподобный объект или dtype типа Interval.

api.types.is_numeric_dtype(arr_or_dtype)

Проверьте, является ли предоставленный массив или тип данных числовым типом.

api.types.is_object_dtype(arr_or_dtype)

Проверяет, является ли массивоподобный объект или тип данных объектным типом.

api.types.is_period_dtype(arr_or_dtype)

(УСТАРЕЛО) Проверка, является ли массивоподобный объект или тип данных типом Period.

api.types.is_signed_integer_dtype(arr_or_dtype)

Проверка, является ли предоставленный массив или тип данных знаковым целочисленным типом.

api.types.is_string_dtype(arr_or_dtype)

Проверить, является ли предоставленный массив или тип данных строковым типом.

api.types.is_timedelta64_dtype(arr_or_dtype)

Проверить, является ли массивоподобный объект или тип данных типом timedelta64.

api.types.is_timedelta64_ns_dtype(arr_or_dtype)

Проверить, является ли предоставленный массив или тип данных типом timedelta64[ns].

api.types.is_unsigned_integer_dtype(arr_or_dtype)

Проверить, является ли предоставленный массив или тип данных беззнаковым целочисленным типом.

api.types.is_sparse(arr)

(УСТАРЕЛО) Проверить, является ли array-like одномерным разреженным массивом pandas.

Интроспекция итерируемых объектов#

api.types.is_dict_like(obj)

Проверить, является ли объект словареподобным.

api.types.is_file_like(obj)

Проверить, является ли объект файлоподобным объектом.

api.types.is_list_like(obj[, allow_sets])

Проверить, является ли объект похожим на список.

api.types.is_named_tuple(obj)

Проверьте, является ли объект именованным кортежем.

api.types.is_iterator(obj)

Проверяет, является ли объект итератором.

Интроспекция скаляров#

api.types.is_bool(obj)

Вернуть True, если данный объект является булевым.

api.types.is_complex(obj)

Возвращает True, если данный объект является комплексным.

api.types.is_float(obj)

Возвращает True, если данный объект является числом с плавающей точкой.

api.types.is_hashable(obj)

Возвращает True, если hash(obj) будет успешным, False в противном случае.

api.types.is_integer(obj)

Возвращает True, если данный объект является целым числом.

api.types.is_interval(obj)

api.types.is_number(obj)

Проверьте, является ли объект числом.

api.types.is_re(obj)

Проверить, является ли объект экземпляром шаблона регулярного выражения.

api.types.is_re_compilable(obj)

Проверьте, может ли объект быть скомпилирован в экземпляр шаблона регулярного выражения.

api.types.is_scalar(val)

Возвращает True, если данный объект является скаляром.