📆 Как преобразовать строку в дату с помощью pandas: простая инструкция
import pandas as pd
# Создаем датафрейм с колонкой 'date_str' содержащей строки с датами
df = pd.DataFrame({'date_str': ['2022-01-01', '2022-02-01', '2022-03-01']})
# Преобразовываем столбец 'date_str' в тип данных даты
df['date'] = pd.to_datetime(df['date_str'])
# Выводим датафрейм
print(df)
Детальный ответ
Конвертирование строки в дату в библиотеке Pandas - это очень распространенная операция при анализе данных. Если вы работаете с данными, содержащими даты и времена, вероятно, вам придется преобразовывать строки в даты с помощью Pandas. Давайте разберемся, как это сделать.
Использование функции to_datetime
Pandas предоставляет функцию to_datetime
, которая позволяет конвертировать строки в даты. Эта функция автоматически распознает множество форматов дат и времени и преобразует их в объекты типа datetime
.
Если у вас есть Series или столбец DataFrame, содержащий строки с датами, вы можете использовать функцию to_datetime
для преобразования этих строк в объекты типа datetime
. Вот пример:
import pandas as pd
# Создание примера Series с датами в виде строк
dates = pd.Series(['2022-01-01', '2022-01-02', '2022-01-03'])
# Преобразование строк в даты с помощью функции to_datetime
converted_dates = pd.to_datetime(dates)
# Вывод результатов
print(converted_dates)
Результат:
0 2022-01-01
1 2022-01-02
2 2022-01-03
dtype: datetime64[ns]
Как видите, строки '2022-01-01', '2022-01-02' и '2022-01-03' были успешно преобразованы в объекты типа datetime
.
Настройка формата даты
Функция to_datetime
имеет множество параметров для настройки формата дат и времени. Например, вы можете указать формат даты с помощью параметра format
.
Вот пример, который демонстрирует, как указать формат даты 'ГГГГ-ММ-ДД' с помощью параметра format
:
import pandas as pd
# Создание примера Series с датами в виде строк
dates = pd.Series(['01-01-2022', '02-01-2022', '03-01-2022'])
# Преобразование строк в даты с указанием формата
converted_dates = pd.to_datetime(dates, format='%d-%m-%Y')
# Вывод результатов
print(converted_dates)
Результат:
0 2022-01-01
1 2022-01-02
2 2022-01-03
dtype: datetime64[ns]
С помощью параметра format
вы указываете, что формат даты в строках - 'день-месяц-год'. Функция to_datetime
теперь правильно интерпретирует строки и преобразует их в даты.
Обработка неверных значений
Если в исходных строках есть неверные значения, например, отсутствующие значения или неправильный формат даты, функция to_datetime
может вызывать ошибки. Однако, в зависимости от ситуации, вы можете обрабатывать эти ошибки с помощью параметра errors
.
Вот несколько возможных значений параметра errors
:
errors='raise'
: по умолчанию. Если есть хотя бы одна неверная строка, функция вызовет ошибку.errors='coerce'
: преобразует неверные строки в значенияNaT
(Not a Time). То есть, все неверные строки будут преобразованы в отсутствующие значения.errors='ignore'
: игнорирует неверные строки и оставляет их в исходном виде.
Вот пример, который демонстрирует использование параметра errors
:
import pandas as pd
# Создание примера Series с некорректными датами
dates = pd.Series(['2022-01-01', '2022-01-02', '2022-01-03', '2022-01-04', '2022-01-XX'])
# Преобразование строк в даты с обработкой неверных значений
converted_dates = pd.to_datetime(dates, errors='coerce')
# Вывод результатов
print(converted_dates)
Результат:
0 2022-01-01
1 2022-01-02
2 2022-01-03
3 2022-01-04
4 NaT
dtype: datetime64[ns]
Здесь '2022-01-XX' является некорректной строкой с датой. Используя параметр errors='coerce'
, мы преобразуем эту неверную строку в значение NaT
.
Заключение
В этой статье мы рассмотрели, как преобразовать строку в дату с помощью библиотеки Pandas. Мы обсудили использование функции to_datetime
, настройку формата даты и обработку неверных значений. Теперь у вас есть инструменты, чтобы легко работать с датами в Pandas.