pandas массивы, скаляры и типы данных
Объекты
Для большинства типов данных pandas использует массивы NumPy в качестве конкретных объектов, содержащихся в Index, Series или DataFrame.
Для некоторых типов данных pandas расширяет систему типов NumPy. Псевдонимы строк для этих типов можно найти в типах данных.
Тип данных | Тип данных pandas | Скаляр | Массив |
|---|---|---|---|
Дата и время с учетом часового пояса | |||
Длительности | (нет) | ||
Периоды (промежутки времени) | |||
Интервалы | |||
Целые числа с возможными значениями NULL |
| (нет) | |
Категории | (нет) | ||
Разреженные | (нет) | ||
Строки | |||
Булевы (с возможностью NULL) | |||
PyArrow | Python-скаляры или |
pandas и сторонние библиотеки могут расширять систему типов NumPy (см. расширенные типы). Метод верхнего уровня array() может использоваться для создания нового массива, который может храниться в Series, Index или в качестве столбца в DataFrame.
| Создать массив. |
PyArrow
Предупреждение
Эта функция находится в стадии разработки, и API может измениться в будущих версиях без предупреждения.
Тип arrays.ArrowExtensionArray поддерживается pyarrow.ChunkedArray с pyarrow.DataType вместо массива NumPy и типа данных. Тип arrays.ArrowExtensionArray является ArrowDtype.
Pyarrow предоставляет поддержку массивов и типов данных, аналогичных NumPy, включая поддержку возможности NULL для всех типов данных, неизменяемость и многое другое.
Примечание
Для строковых типов (pyarrow.string(), string[pyarrow]) поддержка PyArrow по-прежнему обеспечивается arrays.ArrowStringArray и StringDtype("pyarrow"). См. раздел строки ниже.
Хотя отдельные значения в arrays.ArrowExtensionArray хранятся как объекты PyArrow, скаляры возвращаются как Python-скаляры, соответствующие типу данных, например, PyArrow int64 возвращается как Python int, или NA для пропущенных значений.
| Pandas ExtensionArray, основанный на PyArrow ChunkedArray. |
| ExtensionDtype для типов данных PyArrow. |
Даты и время
NumPy не может напрямую представлять даты и время с учётом часового пояса. pandas поддерживает это с помощью расширения массива arrays.DatetimeArray, которое может хранить значения без учёта часового пояса или с учётом.
Timestamp, подкласс datetime.datetime, является скалярным типом pandas для данных даты и времени без учёта часового пояса или с учётом.
| Замена объекта python datetime.datetime в pandas. |
Свойства
Возвращает формат numpy datetime64 в наносекундах. | |
Возвращает день недели. | |
Возвращает день недели. | |
Возвращает день года. | |
Возвращает день года. | |
Возвращает количество дней в месяце. | |
Возвращает количество дней в месяце. | |
Возвращает True, если год високосный. | |
Возвращает True, если дата - последний день месяца. | |
Возвращает True, если дата - первый день месяца. | |
Возвращает True, если дата - последний день квартала. | |
Возвращает True, если дата - первый день квартала. | |
Возвращает True, если дата - последний день года. | |
Возвращает True, если дата - первый день года. | |
Возвращает квартал года. | |
Псевдоним для tzinfo. | |
Возвращает номер недели года. | |
Возвращает номер недели года. | |
Методы
Преобразование временной метки с учётом часового пояса в другой часовой пояс. | |
| Возвращает новую временную метку, округлённую до заданного разрешения. |
| Объединяет дату и время в datetime с теми же полями даты и времени. |
Возвращает строку в формате ctime(). | |
Возвращает объект date с тем же годом, месяцем и днём. | |
Возвращает имя дня недели временной метки с указанным языковым стандартом. | |
Возвращает self.tzinfo.dst(self). | |
| Возвращает новую временную метку, округлённую вниз до заданного разрешения. |
Возвращает общее количество дней в месяце. | |
| Конструирует временную метку из пролептического григорианского порядкового номера. |
Преобразует метку времени [, tz] в локальное время tz из POSIX-метки. | |
Возвращает кортеж из 3 элементов: год по ISO, номер недели и день недели. | |
Возвращает отформатированную строку времени согласно ISO 8610. | |
Возвращает день недели, представленный датой. | |
Возвращает имя месяца временной метки с указанным языковым стандартом. | |
Нормализует временную метку до полуночи, сохраняя информацию о часовом поясе. | |
| Возвращает новый объект Timestamp, представляющий текущее время в локальном часовом поясе tz. |
| Реализует datetime.replace, обрабатывает наносекунды. |
| Округляет временную метку до указанного разрешения. |
| Возвращает отформатированную строку временной метки. |
| Функция не реализована. |
Возвращает объект time с тем же временем, но с tzinfo=None. | |
Возвращает POSIX-метку времени в виде числа с плавающей точкой. | |
Возвращает кортеж времени, совместимый с time.localtime(). | |
Возвращает объект time с тем же временем и tzinfo. | |
Возвращает объект numpy.datetime64 с точностью 'ns'. | |
Преобразует Timestamp в NumPy datetime64. | |
Преобразует временную метку в юлианскую дату. | |
Возвращает период, к которому относится эта временная метка. | |
Преобразует объект Timestamp в объект datetime Python. | |
| Возвращает текущее время в локальном часовом поясе. |
Возвращает пролептический григорианский порядковый номер. | |
Преобразует временную метку с учётом часового пояса в другой часовой пояс. | |
| Локализует временную метку в часовой пояс. |
Возвращает self.tzinfo.tzname(self). | |
Конструирует неопределённую временную метку UTC из POSIX-метки времени. | |
Возвращает новую временную метку, представляющую текущее время по UTC. | |
Возвращает self.tzinfo.utcoffset(self). | |
Возвращает кортеж UTC-времени, совместимый с time.localtime(). | |
Возвращает день недели, представленный датой. |
Коллекция временных меток может храниться в arrays.DatetimeArray. Для данных с учётом часового пояса, .dtype объекта arrays.DatetimeArray — DatetimeTZDtype. Для данных без часового пояса используется np.dtype("datetime64[ns]").
Если данные с учётом часового пояса, то каждое значение в массиве должно иметь один и тот же часовой пояс.
| Pandas ExtensionArray для данных datetime без или с учётом часового пояса. |
| Тип данных ExtensionDtype для данных datetime с учётом часового пояса. |
Timedeltas
NumPy может напрямую представлять timedeltas. pandas предоставляет Timedelta для симметрии с Timestamp.
| Представляет продолжительность, разницу между двумя датами или временем. |
Свойства
Возвращает представление массива numpy timedelta64 как скаляр. | |
Возвращает кортеж компонентов. | |
(УСТЕРЕЖДЁННО) Возвращает продолжительность в наносекундах (нс), для внутренней совместимости. | |
(УСТЕРЕЖДЁННО) Свойство freq. | |
(УСТЕРЕЖДЁННО) Свойство is_populated. | |
Возвращает количество наносекунд (n), где 0 <= n < 1 микросекунда. | |
Совместимость с видами массивов. |
Методы
| Возвращает новый Timedelta, округлённый до указанного разрешения. |
| Возвращает новый Timedelta, округленный вниз до указанного разрешения. |
Форматирует Timedelta в формате ISO 8601 Duration. | |
| Округляет Timedelta до указанного разрешения. |
Преобразует объект pandas Timedelta в объект python | |
Возвращает объект numpy.timedelta64 с точностью 'ns'. | |
Преобразует Timedelta в NumPy timedelta64. | |
Полные секунды в продолжительности. |
Коллекция Timedelta может храниться в TimedeltaArray.
| Pandas ExtensionArray для данных timedelta. |
Периоды
pandas представляет промежутки времени как объекты Period.
Период
| Представляет период времени. |
Свойства
Получить день месяца, на который выпадает период. | |
День недели, в который попадает период, где понедельник=0, а воскресенье=6. | |
День недели, в который попадает период, где понедельник=0, а воскресенье=6. | |
Возвращает день года. | |
Возвращает день года. | |
Получить общее количество дней в месяце, на который выпадает данный период. | |
Получить общее количество дней в месяце, на который выпадает данный период. | |
Получить объект Timestamp для конца периода. | |
Возвращает строковое представление частоты. | |
Получить час периода. | |
Возвращает True, если год периода високосный. | |
Получить минуту периода. | |
Возвращает месяц периода. | |
Возвращает квартал периода. | |
Финансовый год, в который попадает период, согласно начальному кварталу. | |
Получить секунды периода. | |
Получить объект Timestamp для начала периода. | |
Получить номер недели года для данного периода. | |
День недели, в который попадает период, где понедельник=0, а воскресенье=6. | |
Получить номер недели года для данного периода. | |
Возвращает год периода. |
Методы
Преобразовать Period к заданной частоте в начале или конце интервала. | |
Возвращает текущий период. | |
Возвращает отформатированную строку представления | |
Возвращает представление Period в формате Timestamp. |
Коллекция Period может храниться в arrays.PeriodArray. Каждый период в arrays.PeriodArray должен иметь одинаковую freq.
| Расширенный массив Pandas для хранения данных Period. |
| Тип данных ExtensionDtype для данных Period. |
Интервалы
Произвольные интервалы могут быть представлены как объекты Interval.
Неизменяемый объект, реализующий интервал, ограниченный срез-подобный интервал. |
Свойства
Строка, описывающая включительную сторону интервалов. | |
Проверка, является ли интервал закрытым слева. | |
Проверка, является ли интервал закрытым справа. | |
Указывает, является ли интервал пустым, то есть не содержит никаких точек. | |
Левая граница интервала. | |
Возвращает длину интервала. | |
Возвращает середину интервала. | |
Проверка, является ли интервал открытым слева. | |
Проверка, является ли интервал открытым справа. | |
Проверка перекрытия двух объектов Interval. | |
Правая граница интервала. |
Коллекция интервалов может быть хранима в arrays.IntervalArray.
| Массив Pandas для данных интервалов, которые закрыты с одной и той же стороны. |
| Тип расширения для данных интервала. |
Целые числа с возможными пропущенными значениями
numpy.ndarray не может напрямую представлять целочисленные данные с пропущенными значениями. pandas предоставляет это через arrays.IntegerArray.
| Массив целых чисел (с возможными пропущенными значениями). |
Тип расширения для целочисленных данных int8. | |
Тип расширения для целочисленных данных int16. | |
Тип расширения для целочисленных данных int32. | |
Тип расширения для целочисленных данных int64. | |
Тип расширения для целочисленных данных uint8. | |
Тип расширения для целочисленных данных uint16. | |
Тип расширения для целочисленных данных uint32. | |
Тип расширения для целочисленных данных uint64. |
Категориальные
pandas определяет пользовательский тип данных для представления данных, которые могут принимать только ограниченный, фиксированный набор значений. Тип данных Categorical можно описать с помощью CategoricalDtype.
| Тип для категориальных данных с категориями и упорядоченностью. |
Массив | |
Указывают, существует ли упорядоченное отношение между категориями. |
Категориальные данные могут храниться в pandas.Categorical
| Представляет категориальную переменную в стиле классического R / S-plus. |
Альтернативный конструктор Categorical.from_codes() можно использовать, если у вас уже есть категории и целочисленные коды:
| Создаёт тип Categorical из кодов и категорий или типа данных. |
Информация о типе данных доступна в Categorical
Тип данных для этого экземпляра. | |
Категории данного категориального типа. | |
Указывают, существует ли упорядоченное отношение между категориями. | |
Коды категорий данного категориального типа. |
np.asarray(categorical) работает, реализуя интерфейс массива. Имейте в виду, что это преобразует Categorical обратно в массив NumPy, поэтому информация о категориях и порядке не сохраняется!
| Интерфейс массива NumPy. |
Categorical можно хранить в Series или DataFrame. Для создания Series типа category, используйте cat = s.astype(dtype) или Series(..., dtype=dtype), где dtype это
строка
'category'экземпляр
CategoricalDtype.
Если Series имеет тип CategoricalDtype, можно использовать Series.cat для изменения категориальных данных. Подробнее см. Аксессор категориальных данных.
Разреженные
Данные, в которых одно значение повторяется много раз (например, 0 или NaN) могут храниться эффективно как arrays.SparseArray.
| Расширенный массив для хранения разреженных данных. |
| Тип данных для данных, хранящихся в |
Аксессор Series.sparse может использоваться для доступа к атрибутам и методам, специфичным для разреженных данных, если Series содержит разреженные значения. Подробнее см. Аксессор разреженных данных и руководство пользователя.
Строки
При работе с текстовыми данными, где каждый допустимый элемент — это строка или пропуск, рекомендуется использовать StringDtype (с псевдонимом "string").
| Расширенный массив для строковых данных. |
| Расширенный массив для строковых данных в |
| Расширенный тип данных для строковых данных. |
Аксессор Series.str доступен для Series, поддерживаемого arrays.StringArray. Подробнее см. Обработка строк.
Необязательные булевы
Тип данных bool (с псевдонимом "boolean") предоставляет поддержку хранения булевых данных (True, False) с пропущенными значениями, что невозможно сделать с bool numpy.ndarray.
| Массив булевых (True/False) данных с пропущенными значениями. |
Расширенный тип данных для булевых данных. |
Утилиты
Конструкторы
| Объединить список категорий, объединяя категории. |
Возвращает строковое обозначение типа скаляра или списка значений. | |
| Преобразовать входной тип в объект типа pandas или объект типа numpy. |
Определение типа данных
| Проверить, является ли предоставленный массив или тип данных булевым типом. |
| Проверить, является ли массив или тип данных типом Categorical. |
| Проверить, является ли предоставленный массив или тип данных комплексным типом. |
| Проверить, является ли предоставленный массив или тип данных типом datetime64. |
| Проверить, является ли массив или тип данных типом datetime64. |
| Проверить, является ли предоставленный массив или тип данных типом datetime64[ns]. |
| Проверить, является ли массив или тип данных типом DatetimeTZDtype. |
(УСТАРЕЛО) Проверить, является ли массив экземпляром класса расширения pandas. | |
| Проверить, является ли объект типом массива расширения pandas. |
| Проверить, является ли предоставленный массив или тип данных типом float. |
| Проверить, является ли предоставленный массив или тип данных типом int64. |
| Проверить, является ли предоставленный массив или тип данных целым типом. |
| Проверить, является ли массив или тип данных типом Interval. |
| Проверить, является ли предоставленный массив или тип данных числовым типом. |
| Проверить, является ли массив или тип данных типом object. |
| Проверить, является ли массив или тип данных типом Period. |
| Проверить, является ли предоставленный массив или тип данных знаковым целым типом. |
| Проверить, является ли предоставленный массив или тип данных строковым типом. |
| Проверить, является ли массив или тип данных типом timedelta64. |
| Проверить, является ли предоставленный массив или тип данных типом timedelta64[ns]. |
| Проверить, является ли предоставленный массив или тип данных беззнаковым целым типом. |
| Проверить, является ли массив одномерным разреженным массивом pandas. |
Интроспекция итерируемых объектов
Проверить, является ли объект похожим на словарь. | |
Проверить, является ли объект объектом типа "файл". | |
Проверить, является ли объект похожим на список. | |
Проверить, является ли объект именованной кортежем. | |
Проверить, является ли объект итератором. |
Вспомогательные средства для скаляров
Возвращает True, если заданный объект является булевым. | |
(УСТЕРЕЖЕН) Проверка, является ли массив-подобный экземпляром Categorical. | |
Возвращает True, если заданный объект является комплексным. | |
Возвращает True, если заданный объект является числом с плавающей точкой. | |
Возвращает True, если функция hash(obj) выполнится успешно, в противном случае — False. | |
Возвращает True, если заданный объект является целым числом. | |
| Проверяет, является ли объект числом. |
| Проверяет, является ли объект экземпляром шаблона регулярного выражения. |
Проверяет, может ли объект быть скомпилирован в экземпляр шаблона регулярного выражения. | |
Возвращает True, если заданный объект является скаляром. |
© 2008–2022, 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/1.5.0/reference/arrays.html