Форматы дат в Pandas: справочник и примеры
В библиотеке Pandas есть несколько форматов для работы с датами:
-
datetime64: этот формат представляет дату и время с разрешением до наносекунды. Пример использования:
import pandas as pd data = {'dates': ['2021-01-01', '2021-02-01', '2021-03-01']} df = pd.DataFrame(data) df['dates'] = pd.to_datetime(df['dates']) print(df['dates'])
-
period: этот формат представляет период времени, например, год, месяц или неделю. Пример использования:
import pandas as pd data = {'dates': ['2021-01', '2021-02', '2021-03']} df = pd.DataFrame(data) df['dates'] = pd.to_datetime(df['dates']).dt.to_period('M') print(df['dates'])
-
timedelta: этот формат позволяет работать с разницей между двумя датами или временем. Пример использования:
import pandas as pd start_date = pd.to_datetime('2021-01-01') end_date = pd.to_datetime('2021-02-01') diff = end_date - start_date print(diff)
Детальный ответ
Привет студент!
Сегодня я хочу рассказать тебе о форматах дат в библиотеке pandas. Форматы дат являются одной из ключевых особенностей при работе с временными данными. В pandas существует несколько форматов дат, которые могут быть использованы для представления и работы с датами и временем.
1. Форматы дат в pandas
При работе с датами в pandas мы можем использовать следующие форматы:
- ISO8601 - это стандартный формат даты и времени, который используется во многих сферах;
- Строковые форматы - можно использовать пользовательские строковые форматы для представления даты;
- UNIX timestamp - это количество секунд, прошедших с 1 января 1970 года;
- Эпоха - это количество дней или месяцев, прошедших с определенного момента времени.
2. Примеры использования форматов дат в pandas
Давай посмотрим на несколько примеров использования форматов дат в pandas.
2.1 Формат ISO8601
Формат ISO8601 - это один из самых распространенных способов представления даты и времени. В pandas, мы можем использовать этот формат с помощью метода to_datetime:
import pandas as pd
date_string = '2022-10-31'
date = pd.to_datetime(date_string, format='%Y-%m-%d')
print(date)
Результат:
2022-10-31 00:00:00
Мы передаем строковое значение даты и времени '2022-10-31'
и указываем формат '%Y-%m-%d'
. Метод to_datetime преобразует строку в объект datetime.
2.2 Строковые форматы
Если вам необходимо использовать пользовательский формат даты, вы можете передать его как аргумент в метод to_datetime:
import pandas as pd
date_string = '31-10-2022'
date = pd.to_datetime(date_string, format='%d-%m-%Y')
print(date)
Результат:
2022-10-31 00:00:00
В данном примере мы используем формат даты, где день предшествует месяцу и году. Мы передаем строковое значение даты '31-10-2022'
и указываем формат '%d-%m-%Y'
.
2.3 UNIX timestamp
UNIX timestamp представляет собой количество секунд, прошедших с 1 января 1970 года. Для преобразования UNIX timestamp в объект datetime используйте функцию to_datetime:
import pandas as pd
timestamp = 1635649200
date = pd.to_datetime(timestamp, unit='s')
print(date)
Результат:
2021-10-31 03:00:00
Мы передаем UNIX timestamp 1635649200
и указываем, что время измеряется в секундах с помощью аргумента unit='s'
.
2.4 Эпоха
Когда мы говорим о "эпохе", мы обычно имеем в виду количество дней или месяцев, прошедших с определенного момента времени. В pandas, мы можем использовать эпоху с помощью метода to_datetime:
Пример 1 - преобразование количества дней:
import pandas as pd
days_since_epoch = 18900
date = pd.to_datetime(days_since_epoch, origin='unix', unit='D')
print(date)
Результат:
2021-10-31 00:00:00
Мы передаем значение 18900
(количество дней) и указываем, что эпоха начинается с 'unix'
с помощью аргумента origin='unix'
.
Пример 2 - преобразование количества месяцев:
import pandas as pd
months_since_epoch = 620
date = pd.to_datetime(months_since_epoch, origin='unix', unit='M')
print(date)
Результат:
2021-10-31 00:00:00
Мы передаем значение 620
(количество месяцев) и указываем, что эпоха начинается с 'unix'
с помощью аргумента origin='unix'
.
3. Вывод
В этой статье мы рассмотрели различные форматы дат, которые можно использовать в библиотеке pandas. Мы узнали, что форматы дат могут быть представлены в виде ISO8601, строковых форматов, UNIX timestamp и эпохи. Каждый из этих форматов имеет свои особенности и может использоваться в зависимости от требований задачи. Надеюсь, эта информация будет полезной для тебя в работе с временными данными в pandas.
Удачи в изучении!