Первый способ: Метод dt.date
Для удаления времени из объекта DateTime
в Pandas можно использовать метод dt.date
. Этот метод позволяет преобразовать дату и время в объект date
.
Исходные данные
Для начала работы нам понадобится DataFrame с столбцом, содержащим значения DateTime
. Давайте рассмотрим следующий пример:
import pandas as pd
data = {'date_time': ['2022-06-01 10:30:00', '2022-06-02 14:45:00', '2022-06-03 20:15:00']}
df = pd.DataFrame(data)
df['date_time'] = pd.to_datetime(df['date_time'])
Код примера
Применим метод dt.date
к столбцу date_time
:
df['date'] = df['date_time'].dt.date
Результат
После выполнения кода у нас появится новый столбец date
, содержащий только даты, без времени:
date_time date
0 2022-06-01 10:30:00 2022-06-01
1 2022-06-02 14:45:00 2022-06-02
2 2022-06-03 20:15:00 2022-06-03
Теперь мы можем работать с датами без учета времени, что может быть полезно при анализе данных по дням или для других задач, где время не является необходимым фактором.
подраздел (здесь должно быть название подраздела которое мы сгенерировали ранее)
текст
подраздел (здесь должно быть название подраздела которое мы сгенерировали ранее)
текст
подраздел (здесь должно быть название подраздела которое мы сгенерировали ранее)
текст
Второй способ: Метод apply
Второй способ удаления времени из объекта DateTime
в Pandas – применение метода apply
. Этот метод позволяет применить пользовательскую функцию к каждому элементу столбца.
Исходные данные
Для примера возьмем тот же DataFrame, что и в предыдущем разделе:
import pandas as pd
data = {'date_time': ['2022-06-01 10:30:00', '2022-06-02 14:45:00', '2022-06-03 20:15:00']}
df = pd.DataFrame(data)
df['date_time'] = pd.to_datetime(df['date_time'])
Код примера
Создадим пользовательскую функцию, которая будет возвращать только дату из объекта DateTime
, и применим ее с помощью метода apply
:
def get_date(datetime):
return datetime.date()
df['date'] = df['date_time'].apply(get_date)
Результат
После выполнения кода мы получим новый столбец date
, содержащий только даты:
date_time date
0 2022-06-01 10:30:00 2022-06-01
1 2022-06-02 14:45:00 2022-06-02
2 2022-06-03 20:15:00 2022-06-03
Метод apply
позволяет более гибко обрабатывать значения в столбце, применяя пользовательскую функцию к каждому элементу. Это может быть полезным при выполнении сложных операций или преобразований с данными, где методы dt
недостаточно гибки.
подраздел (здесь должно быть название подраздела которое мы сгенерировали ранее)
текст
подраздел (здесь должно быть название подраздела которое мы сгенерировали ранее)
текст
подраздел (здесь должно быть название подраздела которое мы сгенерировали ранее)
текст
Третий способ: Метод to_period
Еще один способ удаления времени из объекта DateTime
в Pandas – использование метода to_period
. Этот метод позволяет преобразовать дату и время в период, игнорируя значения времени.
Исходные данные
Для примера используем тот же DataFrame с данными date_time
:
import pandas as pd
data = {'date_time': ['2022-06-01 10:30:00', '2022-06-02 14:45:00', '2022-06-03 20:15:00']}
df = pd.DataFrame(data)
df['date_time'] = pd.to_datetime(df['date_time'])
Код примера
Применим метод to_period
к столбцу date_time
:
df['date'] = df['date_time'].dt.to_period('D')
Результат
После выполнения кода получим новый столбец date
, содержащий дату в формате периода:
date_time date
0 2022-06-01 10:30:00 2022-06-01
1 2022-06-02 14:45:00 2022-06-02
2 2022-06-03 20:15:00 2022-06-03
Метод to_period
преобразует значения DateTime
в столбце в периоды (например, дни, месяцы, годы), в результате чего время игнорируется и остается только дата.
подраздел (здесь должно быть название подраздела которое мы сгенерировали ранее)
текст
подраздел (здесь должно быть название подраздела которое мы сгенерировали ранее)
текст
подраздел (здесь должно быть название подраздела которое мы сгенерировали ранее)
текст
Четвертый способ: Модуль dateutil
Четвертым способом удаления времени из объекта DateTime
в Pandas является использование модуля dateutil
. Этот модуль предоставляет больше гибкости при работе с датами и временем.
Исходные данные
Для примера возьмем тот же DataFrame с данными date_time
:
import pandas as pd
data = {'date_time': ['2022-06-01 10:30:00', '2022-06-02 14:45:00', '2022-06-03 20:15:00']}
df = pd.DataFrame(data)
df['date_time'] = pd.to_datetime(df['date_time'])
Код примера
Импортируем модуль dateutil
и используем функцию parser.parse
для преобразования объекта DateTime
в дату:
from dateutil import parser
df['date'] = df['date_time'].apply(lambda x: parser.parse(str(x)).date())
Результат
После выполнения кода получим новый столбец date
с удаленным временем:
date_time date
0 2022-06-01 10:30:00 2022-06-01
1 2022-06-02 14:45:00 2022-06-02
2 2022-06-03 20:15:00 2022-06-03
Модуль dateutil
позволяет более гибко обрабатывать и преобразовывать даты и время. Функция parser.parse
позволяет разобрать строку с датой и временем и получить объект DateTime
, а затем с помощью метода date()
извлечь только дату.
подраздел (здесь должно быть название подраздела которое мы сгенерировали ранее)
текст
подраздел (здесь должно быть название подраздела которое мы сгенерировали ранее)
текст
подраздел (здесь должно быть название подраздела которое мы сгенерировали ранее)
текст
Пятый способ: Метод astype
Пятый способ удаления времени из объекта DateTime
в Pandas – использование метода astype
. Этот метод позволяет преобразовать тип данных столбца в другой тип, например, из DateTime
в date
.
Исходные данные
Для примера возьмем тот же DataFrame с данными date_time
:
import pandas as pd
data = {'date_time': ['2022-06-01 10:30:00', '2022-06-02 14:45:00', '2022-06-03 20:15:00']}
df = pd.DataFrame(data)
df['date_time'] = pd.to_datetime(df['date_time'])
Код примера
Преобразуем тип данных столбца date_time
в date
с помощью метода astype
:
df['date'] = df['date_time'].dt.date.astype('datetime64')
Результат
После выполнения кода получим новый столбец date
, содержащий только даты без времени:
date_time date
0 2022-06-01 10:30:00 2022-06-01
1 2022-06-02 14:45:00 2022-06-02
2 2022-06-03 20:15:00 2022-06-03
Метод astype
позволяет преобразовать тип данных столбца к указанному типу. В нашем случае мы преобразовали тип данных date
в объект datetime64
, чтобы сохранить только даты.
подраздел (здесь должно быть название подраздела которое мы сгенерировали ранее)
текст
подраздел (здесь должно быть название подраздела которое мы сгенерировали ранее)
текст
подраздел (здесь должно быть название подраздела которое мы сгенерировали ранее)
текст