Pandas Дата и Время в Части Даты (месяц, год и т.д.)
Last updated
Last updated
В этом руководстве вы научитесь использовать Pandas для извлечения частей из столбца с датой и временем, таких как: дата, год и месяц. Pandas предоставляет несколько простых способов извлечения частей из объекта datetime, включая использование .dt
аксессора.
К концу этого руководства вы узнаете, как работает аксессор dt
и как использовать функцию normalize
для преобразования столбца в дату с сохранением типа данных datetime. Вы также научитесь проверять типы данных других столбцов и получите общее представление о распространенных частях даты, которые вы можете захотеть преобразовать. Вы также можете просто использовать функцию Python .strftime()
, но всегда полезно иметь несколько способов решения проблем.
Краткий ответ: Используйте df['date_column'].dt.date для извлечения даты из Pandas Datetime
Оглавление
При работе с датами и временем в Pandas мы можем использовать аксессор .dt
для доступа к различным атрибутам из серии Pandas. Это позволяет извлекать различные части из объекта datetime, такие как месяцы, дата и другое.
Аксессор работает с колонками типа datetime64[ns]
и позволяет нам получить доступ к большим объемам данных. При применении аксессора к серии, возвращаемые значения являются серией с теми же индексами, что и у исходной серии. Это позволяет легко извлекать datetime-подобные значения для целого столбца. Более того, мы можем легко фильтровать наш датафрейм на основе этих значений.
В следующем разделе вы увидите несколько общих аксессоров для работы с датой и временем, которые можно использовать в Pandas.
Следующая таблица предоставляет обзор некоторых из наиболее распространенных dt-акцессоров, которые вы можете использовать в Pandas:
.week
Номер недели
.year
Значение года, возвращаемое как целое число
.date
Дата без значений времени
.day
День месяца, возвращается как значение от 1 до 31.
.month
Месяц года, возвращается как значение от 1 до 12.
.weekday
День недели возвращается как значение, где понедельник=0, а воскресенье=6.
.day_name()
Название дня недели возвращается в виде строки
В следующем разделе вы узнаете, как использовать аксессор .dt
Pandas для преобразования столбцов Pandas в значения типа datetime.
Чтобы следовать этому руководству, я предоставил пример DataFrame Pandas. Не стесняйтесь скопировать код ниже в свой любимый редактор кода. Если вы хотите использовать свой собственный набор данных, ваши результаты, конечно, будут отличаться.
Мы можем видеть, что у нас есть три столбца, один из которых содержит значения даты и времени. Мы можем проверить тип этого столбца, используя свойство .dtype
:
Теперь, когда мы загрузили наш датафрейм, давайте начнем с изучения извлечения даты из столбца с датой и временем.
Во многих случаях вы захотите извлечь только дату из столбца с типом datetime. Функция .dt.date
делает это очень просто и позволяет извлечь только дату из столбца.
Давайте посмотрим, как это выглядит:
Мы можем видеть, как легко было извлечь только дату из столбца datetime
Важно отметить, что возвращаемая дата на самом деле является типом данных object
. Мы можем подтвердить это, проверив тип данных столбца:
Это может подойти или не подойти для ваших случаев использования. Хотя вы можете преобразовать объект даты обратно в дату, мы действительно можем сохранить тип данных напрямую, используя функцию dt.normalize().
Чтобы сохранить тип данных столбца при извлечении даты из столбца Pandas, можно использовать функцию .dt.normalize()
. Эта функция берет объект даты и времени и нормализует время до полуночи. Это полезный метод, который позволяет сохранять тип данных, когда информация о времени не важна.
Давайте посмотрим, как с помощью этого метода извлечь дату из столбца с датой
Мы можем убедиться, что, применив функцию нормализации, дата была извлечена. Давайте проверим, остался ли тип данных прежним:
Мы видим, что при использовании функции .dt.normalize()
полученный тип данных не является object
, а остается как datetime64[ns]
В следующем разделе вы узнаете, как использовать аксессор .dt
для доступа к различным частям объекта даты и времени.
В этом разделе вы узнаете, как с помощью Pandas извлекать различные части даты из столбца с датой и временем. Существует множество различных опций, которые можно получить из столбца с датой и временем.
Поскольку месяцы можно представить разными способами, нам следует изучить, как их лучше всего извлекать.
Мы можем использовать
.month
вернет месяц в виде числа от 1 до 12
.month_name()
вернет название месяца в зависимости от локали, позволяя использовать другую локаль.
.month_name().str[:3]
вернет сокращенную версию названия месяца.
Давайте посмотрим, как это:
В следующем разделе вы узнаете, как извлечь день недели из столбца с датами в формате Pandas.
Существует множество различных способов представления дней недели. Например, их можно представить в виде числа – но даже это можно сделать по-разному. В противном случае их можно представить в виде строки с названием дня недели. Наконец, их можно представить в виде номера дня в месяце или в году.
Мы можем использовать следующие атрибуты для доступа к информации о днях недели:
.weekday
возвращает номер дня недели, начиная с 0 для понедельника
day_name()
возвращает название дня недели на основе указанной локали.
.day
возвращает количество дней, прошедших с начала месяца.
.dayofyear
возвращает количество дней от начала года до данного дня.
Давайте посмотрим, как мы можем использовать это для извлечения информации.
В этом уроке вы узнали, как использовать Pandas для извлечения даты из стобца с данными типа datetime, используя аксессор dt
. Вы узнали, как работают эти аксессоры и какие типы данных они возвращают. Вы также научились извлекать информацию о месяце и дне недели из столбца с датой и временем.
Чтобы изучить связанные темы, ознакомьтесь с этими учебными пособиями:
Создание диапазонов дат с помощью Pandas
Pandas: добавление дней в столбец дат
Преобразование строки Python в дату: функция Python strptime
Чтобы узнать больше о доступе dt
в Pandas, ознакомьтесь с .