Преобразование numpy.datetime64 в datetime и Timestamp

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Добро пожаловать в мир форматов datetime, Timestamp и datetime64. Вот краткое руководство по преобразованию между этими тремя форматами:

  • Преобразование из datetime в Timestamp: Для выполнения данной задачи используйте pd.Timestamp(your_datetime).
  • Преобразование из Timestamp в datetime: Примените к объекту Timestamp метод your_timestamp.to_pydatetime().
  • Преобразование из datetime в datetime64: Просто вызовите np.datetime64(your_datetime).
  • Преобразование из datetime64 в datetime: Здесь понадобится использовать метод astypeyour_datetime64.astype('M8[ms]').astype(datetime).

Продемонстрируем преобразования на примере:

Python
Скопировать код
import pandas as pd
import numpy as np
from datetime import datetime

your_datetime = datetime.now()  # фиксируем текущее время
your_timestamp = pd.Timestamp(your_datetime)  # превращаем в timestamp
your_datetime64 = np.datetime64(your_datetime)  # переходим к 64-битной версии
back_to_datetime = your_datetime64.astype('M8[ms]').astype(datetime)  # возвращаемся к значению datetime

Выбирайте подходящий тип datetime на основе специфики вашего проекта. Правильные преобразования гарантируют целостность данных и упрощают дальнейшую работу с ними.

Кинга Идем в IT: пошаговый план для смены профессии

Советы для быстрых преобразований

Метод Pandas

Функция pd.to_datetime библиотеки Pandas подтверждает ее универсальность. Она способна переводить различные форматы дат в объекты Timestamp или DatetimeIndex:

Python
Скопировать код
pd.to_datetime('2023-04-12')  # формат Г-М-Д
pd.to_datetime('12/04/2023', dayfirst=True)  # формат Д-М-Г для европейского стандарта

pd.to_datetime(1670407200, unit='s')  # временная метка UNIX

При конвертации учтите часовые пояса, задавая их параметром tz.

Время в путешествии

Метод datetime.datetime.utcfromtimestamp может стать выбором для конвертации из UNIX-времени в datetime, но учтите, что он не применим для дат, предшествующих индустриальной эпохе. В качестве альтернативы возьмите pd.to_datetime с параметром unit='s' или unit='ms'.

Использование возможностей NumPy

В NumPy преобразование дат в UNIX-время выглядит следующим образом:

Python
Скопировать код
np_datetime64 = np.datetime64('2023-04-12T12:34:56')
unix_timestamp = (np_datetime64 – np.datetime64('1970-01-01T00:00:00Z')) / np.timedelta64(1, 's')
print(unix_timestamp)  # результат преобразования

Если вы работаете с массивами дат и времени, метод tolist() позволит преобразовать массив numpy.datetime64 в список объектов datetime из Python.

Не забывайте обновлять pandas и numpy, чтобы поддерживать их совместимость при преобразованиях.

Визуализация

В таблице ниже представлены различные форматы представления даты и времени:

Markdown
Скопировать код
| Формат             | Тип           |
| ------------------ | --------------|
| Обычное представление времени     | 📅 `datetime` |
| Pandas-представление       | 🤖 `Timestamp` |
| NumPy-формат        | 🔢 `datetime64` |

Преобразование между ними можно сравнить с переключением между различными устройствами:

Python
Скопировать код
# 📅 ⟷ 🤖: Преобразования datetime ↔ Timestamp
# 📅 ⟷ 🔢: Преобразования datetime ↔ datetime64
# 🤖 ⟷ 🔢: Преобразования Timestamp ↔ datetime64

Использование этих знаний поможет вам легче навигироваться по различным потребностям в обработке даты и времени.

Работа с аномалиями и подводными камнями производительности

Исключения и Особенности

Работа с датами и временем иногда скрыто осложняется високосными секундами, сдвигами при переходе на летнее/зимнее время, историческими изменениями. Предварительное исследование временных данных поможет предотвратить непредвиденные сложности.

Производительность

Для задач, требующих значительной производительности, предпочтение стоит отдать операциям NumPy. Благодаря низкоуровневой реализации и оптимизированным вычислениям, они обеспечивают большую эффективность.

Нестандартные Решения

Желаете опробовать что-то новое? Обратите внимание на такие пакеты, как Arrow или Maya, предлагающие удобные возможности для работы с часовыми поясами и форматированием даты и времени.

Полезные материалы

  1. pandas.Timestamp — документация pandas 2.2.0 — Информация о классе Timestamp.
  2. Даты и временные интервалы — Руководство NumPy v1.26 — Более подробное руководство по datetime64.
  3. datetime — Основные типы дат и времени — Документация Python 3.12.1 — Обзор модуля datetime.
  4. pandas.to_datetime — документация pandas 2.2.0 — Перевод дат и времени в формат Timestamp.
  5. python – Преобразование между datetime, Timestamp и datetime64 – Stack Overflow — Обсуждение преобразования данных о дате и времени.
  6. Конвертер времени UNIX (Epoch Converter) — Инструменты для работы с временем в формате UNIX.
  7. Arrow: Улучшенные даты и времена в Python — документация Arrow 🏹 1.3.0 — Пакет для работы с датой и временем.