pandas массивы, скаляры и типы данных
Объекты
Для большинства типов данных pandas использует массивы NumPy в качестве конкретных объектов, содержащихся в Index, Series или DataFrame.
Для некоторых типов данных pandas расширяет систему типов NumPy. Псевдонимы строк для этих типов можно найти в dtypes.
Тип данных | Тип данных pandas | Скаляр | Массив |
|---|---|---|---|
Дата и время с учетом часового пояса | |||
Длительности | (нет) | ||
Периоды (промежутки времени) | |||
Промежутки | |||
Целые числа с возможностью пропусков |
| (нет) | |
Вещественные числа с возможностью пропусков |
| (нет) | |
Категориальные | (нет) | ||
Разреженные | (нет) | ||
Строки | |||
Логические с возможностью пропусков | |||
PyArrow | Скаляры Python или |
pandas и сторонние библиотеки могут расширять систему типов NumPy (см. Расширяемые типы). Метод верхнего уровня array() может использоваться для создания нового массива, который может храниться в Series, Index или как столбец в DataFrame.
| Создать массив. |
PyArrow
Предупреждение
Эта функция является экспериментальной, и API может измениться в будущей версии без предупреждения.
The arrays.ArrowExtensionArray is backed by a pyarrow.ChunkedArray with a pyarrow.DataType instead of a NumPy array and data type. The .dtype of a arrays.ArrowExtensionArray is an ArrowDtype.
Pyarrow provides similar array and data type support as NumPy including first-class nullability support for all data types, immutability and more.
Таблица ниже показывает эквивалентные типы на основе pyarrow (pa), расширение pandas и numpy (np), которые распознаются pandas. Типы на основе pyarrow ниже должны передаваться в ArrowDtype для распознавания pandas, например pd.ArrowDtype(pa.bool_())
Тип PyArrow | Тип расширения pandas | Тип NumPy |
|---|---|---|
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
(none) | (none) | |
(none) | (none) | |
| ||
(none) | (none) | |
(none) | (none) | |
(none) |
| |
(none) | (none) | |
| ||
(none) | (none) | |
(none) | (none) | |
(none) | (none) | |
(none) |
Примечание
Поддержка строк на основе 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 или NA для пропущенных значений.
| Pandas ExtensionArray, поддерживаемый PyArrow ChunkedArray. |
| Тип ExtensionDtype для типов данных PyArrow. |
Дополнительную информацию можно найти в руководстве пользователя PyArrow
Даты и время
NumPy не может напрямую представлять даты и время с часовыми поясами. pandas поддерживает это с помощью расширяемого массива arrays.DatetimeArray, который может содержать значения без часового пояса или с часовым поясом.
Timestamp, подкласс datetime.datetime, является скалярным типом pandas для данных даты и времени без часового пояса или с часовым поясом. NaT — это значение отсутствия для данных даты и времени.
| Замена pandas для объекта python datetime.datetime. |
Свойства
Возвращает формат numpy datetime64 в наносекундах. | |
Возвращает день недели. | |
Возвращает день недели. | |
Возвращает день года. | |
Возвращает день года. | |
Возвращает количество дней в месяце. | |
Возвращает количество дней в месяце. | |
Возвращает True, если год високосный. | |
Проверяет, является ли дата последним днем месяца. | |
Проверяет, является ли дата первым днем месяца. | |
Проверяет, является ли дата последним днем квартала. | |
Проверяет, является ли дата первым днем квартала. | |
Возвращает True, если дата — последний день года. | |
Возвращает True, если дата — первый день года. | |
Возвращает квартал года. | |
Псевдоним для tzinfo. | |
Аббревиатура, связанная с self._creso. | |
Возвращает номер недели года. | |
Возвращает номер недели года. | |
Методы
| Преобразовать внутреннее представление int64 в заданный единицу. |
Преобразовать объект Timestamp с часовым поясом в другой часовой пояс. | |
| Возвращает новый объект Timestamp, округленный до указанного разрешения. |
| Объединить дату и время в datetime с теми же полями даты и времени. |
Возвращает строку в формате ctime(). | |
Возвращает объект date с тем же годом, месяцем и днем. | |
| Возвращает имя дня недели Timestamp с указанным языковым стандартом. |
Возвращает корректировку летнего времени. | |
| Возвращает новый объект Timestamp, округленный вниз до указанного разрешения. |
| Создает объект Timestamp из пролептического григорианского порядкового номера. |
Преобразует временную метку[, tz] в локальное время tz из POSIX-временной метки. | |
Возвращает кортеж с годом ISO, номером недели и днем недели. | |
| Возвращает время в формате ISO 8601. |
Возвращает день недели, представленный датой. | |
| Возвращает имя месяца Timestamp с указанным языковым стандартом. |
Нормализует объект Timestamp до полуночи, сохраняя информацию о часовом поясе. | |
| Возвращает новый объект Timestamp, представляющий текущее время в локальном часовом поясе tz. |
| Реализует datetime.replace, обрабатывает наносекунды. |
| Округляет объект Timestamp до указанного разрешения. |
| Возвращает отформатированную строку объекта Timestamp. |
| Функция не реализована. |
Возвращает объект time с тем же временем, но с tzinfo=None. | |
Возвращает POSIX-временную метку как число с плавающей точкой. | |
Возвращает кортеж времени, совместимый с time.localtime(). | |
Возвращает объект time с тем же временем и tzinfo. | |
Возвращает объект numpy.datetime64 с той же точностью. | |
| Преобразует Timestamp в NumPy datetime64. |
Преобразует TimeStamp в юлианскую дату. | |
| Возвращает период, в котором этот объект Timestamp является наблюдением. |
| Преобразует объект Timestamp в базовый объект Python datetime. |
| Возвращает текущее время в локальном часовом поясе. |
Возвращает пролептический григорианский порядковый номер. | |
Преобразует объект Timestamp с часовым поясом в другой часовой пояс. | |
| Локализует объект Timestamp в часовом поясе. |
Возвращает имя часового пояса. | |
Создает объект datetime в UTC из POSIX-временной метки. | |
Возвращает новый объект Timestamp, представляющий текущее время и дату в UTC. | |
Возвращает смещение UTC. | |
Возвращает кортеж времени UTC, совместимый с time.localtime(). | |
Возвращает день недели, представленный датой. |
Коллекция timestamp может храниться в arrays.DatetimeArray. Для данных с часовыми поясами, .dtype объекта arrays.DatetimeArray является DatetimeTZDtype. Для данных без часового пояса используется np.dtype("datetime64[ns]").
Если данные учитывают часовой пояс, то каждое значение в массиве должно иметь одинаковый часовой пояс.
| Расширенный массив Pandas для данных даты и времени без или с учётом часового пояса. |
| Расширенный тип данных для данных даты и времени с учётом часового пояса. |
Продолжительности
NumPy может напрямую представлять продолжительности. pandas предоставляет Timedelta для симметрии с Timestamp. NaT — это значение отсутствия для данных продолжительности.
| Представляет продолжительность, разницу между двумя датами или временами. |
Свойства
Возвращает массив NumPy timedelta64, представление скаляра. | |
Возвращает кортеж-подобный объект с компонентами. | |
Возвращает количество дней в продолжительности. | |
Возвращает количество наносекунд (n), где 0 ≤ n < 1 микросекунда. | |
Возвращает общее количество часов, минут и секунд продолжительности в секундах. | |
| Совместимость с представлением массива. |
Методы
| Преобразует внутреннее целочисленное представление в заданные единицы измерения. |
| Возвращает новую продолжительность, округлённую до заданного разрешения. |
| Возвращает новую продолжительность, округленную вниз до заданного разрешения. |
Форматирует продолжительность как ISO 8601 Duration. | |
| Округляет продолжительность до указанного разрешения. |
Преобразует объект pandas Timedelta в объект Python | |
Возвращает объект numpy.timedelta64 с точностью 'ns'. | |
| Преобразует Timedelta в NumPy timedelta64. |
Общее количество секунд в продолжительности. |
Коллекция Timedelta может быть сохранена в TimedeltaArray.
| Расширенный массив Pandas для данных продолжительности. |
Периоды
pandas представляет промежутки времени как объекты Period.
Период
| Представляет период времени. |
Свойства
Получить день месяца, на который приходится период. | |
День недели, в который попадает период, где понедельник = 0, а воскресенье = 6. | |
День недели, в который попадает период, где понедельник = 0, а воскресенье = 6. | |
Возвращает день года. | |
Возвращает день года. | |
Получить общее количество дней в месяце, на который приходится этот период. | |
Получить общее количество дней в месяце, на который приходится этот период. | |
Получить объект Timestamp для конца периода. | |
Возвращает строковое представление частоты. | |
Получить компонент часа дня периода. | |
Возвращает True, если год периода является високосным. | |
Получить компонент минуты часа периода. | |
Возвращает месяц, на который приходится этот период. | |
Возвращает квартал, на который приходится этот период. | |
Финансовый год, в котором находится период, согласно его начальному кварталу. | |
Получить компонент секунды периода. | |
Получить объект Timestamp для начала периода. | |
Получить номер недели года для данного периода. | |
День недели, в который попадает период, где понедельник = 0, а воскресенье = 6. | |
Получить номер недели года для данного периода. | |
Возвращает год, на который приходится этот период. |
Методы
| Преобразование периода к желаемой частоте, в начале или конце интервала. |
| Возвращает период текущей даты. |
| Возвращает отформатированное строковое представление |
| Возвращает представление периода в формате Timestamp. |
Коллекция Period может храниться в arrays.PeriodArray. Каждый период в arrays.PeriodArray должен иметь одинаковую freq.
| Расширенный массив Pandas для хранения данных Period. |
| Расширенный тип данных для Period данных. |
Интервалы
Произвольные интервалы могут быть представлены как объекты Interval.
Неизменяемый объект, реализующий интервал, ограниченный срез-подобный интервал. |
Свойства
Строка, описывающая включающие стороны интервалов. | |
Проверка, закрыт ли интервал слева. | |
Проверка, закрыт ли интервал справа. | |
Указывает, является ли интервал пустым, то есть не содержит ни одной точки. | |
Левая граница интервала. | |
Возвращает длину интервала. | |
Возвращает середину интервала. | |
Проверка, открыт ли интервал слева. | |
Проверка, открыт ли интервал справа. | |
| Проверка, перекрываются ли два объекта Interval. |
Правая граница интервала. |
Коллекция интервалов может храниться в arrays.IntervalArray.
| Массив Pandas для интервальных данных, которые закрыты с той же стороны. |
| Тип расширения для интервальных данных. |
Целые числа с возможными пропусками
numpy.ndarray не может напрямую представлять целочисленные данные с пропусками. pandas предоставляет это через arrays.IntegerArray.
| Массив целых (с возможными пропусками) значений. |
Тип расширения для целых чисел int8. | |
Тип расширения для целых чисел int16. | |
Тип расширения для целых чисел int32. | |
Тип расширения для целых чисел int64. | |
Тип расширения для целых чисел uint8. | |
Тип расширения для целых чисел uint16. | |
Тип расширения для целых чисел uint32. | |
Тип расширения для целых чисел uint64. |
Вещественные числа с возможными пропусками
| Массив вещественных (с возможными пропусками) значений. |
Тип расширения для данных float32. | |
Тип расширения для данных float64. |
Категориальные
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. Дополнительные сведения см. в Обработка строк.
Необязательные булевы
Тип данных boolean (с псевдонимом "boolean") предоставляет поддержку хранения булевых данных (True, False) с пропущенными значениями, что невозможно с bool-массивом numpy.ndarray.
| Массив булевых (True/False) данных с пропущенными значениями. |
Расширенный тип данных для булевых данных. |
Утилиты
Конструкторы
| Объединить список категорий, объединяя категории. |
| Возвращает строковое обозначение типа скаляра или списка значений. |
| Преобразовать входные данные в объект типа pandas или numpy. |
Проверка типа данных
| Проверить, является ли предоставленный массив или тип данных типом вещественного числа. |
| Проверить, является ли предоставленный массив или тип данных типом булевых значений. |
| (УСТАРЕЛО) Проверить, является ли массив или тип данных типом Categorical. |
| Проверить, является ли предоставленный массив или тип данных типом комплексных чисел. |
| Проверить, является ли предоставленный массив или тип данных типом datetime64. |
| Проверить, является ли массив или тип данных типом datetime64. |
| Проверить, является ли предоставленный массив или тип данных типом datetime64[ns]. |
| (УСТАРЕЛО) Проверить, является ли массив или тип данных типом DatetimeTZDtype. |
| Проверить, является ли объект типом расширенного массива pandas. |
| Проверить, является ли предоставленный массив или тип данных типом float. |
| (УСТАРЕЛО) Проверить, является ли предоставленный массив или тип данных типом int64. |
| Проверить, является ли предоставленный массив или тип данных целочисленным типом. |
| (УСТАРЕЛО) Проверить, является ли массив или тип данных типом Interval. |
| Проверить, является ли предоставленный массив или тип данных числовым типом. |
| Проверить, является ли массив или тип данных типом object. |
| (УСТАРЕЛО) Проверить, является ли массив или тип данных типом Period. |
| Проверить, является ли предоставленный массив или тип данных типом знакового целого числа. |
| Проверить, является ли предоставленный массив или тип данных строковым типом. |
| Проверить, является ли массив или тип данных типом timedelta64. |
| Проверить, является ли предоставленный массив или тип данных типом timedelta64[ns]. |
| Проверить, является ли предоставленный массив или тип данных типом беззнакового целого числа. |
| (УСТАРЕЛО) Проверить, является ли массив 1-мерным разреженным массивом pandas. |
Проверка итерируемых объектов
Проверить, является ли объект похожим на словарь. | |
Проверить, является ли объект файловым объектом. | |
| Проверить, является ли объект списком. |
Проверить, является ли объект именованной кортежем. | |
Проверить, является ли объект итератором. |
Вспомогательные функции для скалярных объектов
| Возвращает True, если объект является булевым. |
| Возвращает 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/2.2.2/reference/arrays.html