Как убрать время из даты в pandas? 📅⏰

В pandas есть метод `dt.date`, который позволяет получить только дату из объекта типа дата. Вот как использовать его:

    import pandas as pd

    # Создание DataFrame с датами
    df = pd.DataFrame({'date': ['2022-01-01', '2022-02-01', '2022-03-01']})

    # Преобразование столбца 'date' в тип datetime
    df['date'] = pd.to_datetime(df['date'])

    # Извлечение только даты
    df['date'] = df['date'].dt.date

    # Вывод результата
    print(df)
    

Детальный ответ

Как убрать время из даты в pandas

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

Пример 1: Удаление времени из столбца даты и времени

Для начала давайте посмотрим на пример, в котором у нас есть столбец 'datetime' с данными о дате и времени:

import pandas as pd

df = pd.DataFrame({'datetime': ['2022-01-01 10:30:00', '2022-01-02 15:45:00', '2022-01-03 09:00:00']})
print(df)
# Вывод:
#              datetime
# 0  2022-01-01 10:30:00
# 1  2022-01-02 15:45:00
# 2  2022-01-03 09:00:00

Теперь мы можем использовать метод .dt.date для удаления времени из столбца 'datetime':

df['datetime'] = pd.to_datetime(df['datetime']).dt.date
print(df)
# Вывод:
#      datetime
# 0  2022-01-01
# 1  2022-01-02
# 2  2022-01-03

Как видите, теперь столбец 'datetime' содержит только даты без времени.

Пример 2: Удаление времени из индекса даты и времени

В следующем примере у нас есть DataFrame с индексом, содержащим даты и времена:

import pandas as pd

index = pd.to_datetime(['2022-01-01 10:30:00', '2022-01-02 15:45:00', '2022-01-03 09:00:00'])
data = {'value': [1, 2, 3]}
df = pd.DataFrame(data, index=index)
print(df)
# Вывод:
#                      value
# 2022-01-01 10:30:00      1
# 2022-01-02 15:45:00      2
# 2022-01-03 09:00:00      3

Чтобы удалить время из индекса, мы можем использовать метод .date следующим образом:

df.index = df.index.date
print(df)
# Вывод:
#             value
# 2022-01-01      1
# 2022-01-02      2
# 2022-01-03      3

Теперь наш индекс содержит только даты без времени.

Пример 3: Удаление времени из столбца с типом данных 'datetime64'

Иногда у нас может быть столбец с типом данных 'datetime64', и мы хотим удалить время из этого столбца. Ниже приведен пример:

import pandas as pd

df = pd.DataFrame({'datetime': pd.to_datetime(['2022-01-01 10:30:00', '2022-01-02 15:45:00', '2022-01-03 09:00:00'])})
print(df.dtypes)
# Вывод:
# datetime    datetime64[ns]
# dtype: object

Мы можем использовать метод .dt.floor для удаления времени из столбца с типом данных 'datetime64':

df['datetime'] = df['datetime'].dt.floor('D')
print(df)
# Вывод:
#     datetime
# 0 2022-01-01
# 1 2022-01-02
# 2 2022-01-03

Теперь столбец 'datetime' содержит даты без времени.

В этой статье мы рассмотрели три примера удаления времени из даты в pandas. Мы использовали методы .dt.date и .dt.floor для этой цели. Надеюсь, эти примеры помогут вам работать с датами в pandas более эффективно.

Видео по теме

Урок 5. Обработка и анализ данных на Python. Библиотека Pandas. Дата и время в Pandas

Разбор модуля datetime python

Уроки Python / Модуль datetime

Похожие статьи:

Как убрать время из даты в pandas? 📅⏰