Как убрать время из даты в pandas? 📅⏰
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 более эффективно.