Spec-Zone.ru › pandas 0.25

pandas.to_datetime

pandas.to_datetime(arg, errors='raise', dayfirst=False, yearfirst=False, utc=None, box=True, format=None, exact=True, unit=None, infer_datetime_format=False, origin='unix', cache=True) [source]

Преобразование аргумента в дату и время.

Параметры:
arg : integer, float, string, datetime, list, tuple, 1-d array, Series

Добавлена в версии 0.18.1: или DataFrame/словарь-подобный объект

errors : {‘ignore’, ‘raise’, ‘coerce’}, default ‘raise’
  • Если ‘raise’, некорректный разбор вызовет исключение
  • Если ‘coerce’, некорректный разбор будет установлен как NaT
  • Если ‘ignore’, некорректный разбор вернет исходное значение
dayfirst : boolean, default False

Укажите порядок разбора дат, если arg является строкой или списком. Если True, даты разбираются с дня в первую очередь, например, 10/11/12 разбирается как 2012-11-10. Предупреждение: dayfirst=True не является строгим, но будет предпочитать разбор с дня в первую очередь (это известная ошибка, основанная на поведении dateutil).

yearfirst : boolean, default False

Укажите порядок разбора дат, если arg является строкой или списком.

  • Если True, даты разбираются с года в первую очередь, например, 10/11/12 разбирается как 2010-11-12.
  • Если оба dayfirst и yearfirst равны True, год разбирается в первую очередь (также как и в dateutil).

Предупреждение: yearfirst=True не является строгим, но будет предпочитать разбор с года в первую очередь (это известная ошибка, основанная на поведении dateutil).

Добавлена в версии 0.16.1.

utc : boolean, default None

Возвращает UTC DatetimeIndex, если True (преобразуя любые tz-aware объекты datetime.datetime).

box : boolean, default True
  • Если True, возвращает DatetimeIndex или подобный Index-объект
  • Если False, возвращает массив значений.

Устарело начиная с версии 0.25.0: Используйте Series.to_numpy() или Timestamp.to_datetime64() вместо этого, чтобы получить массив значений или numpy.datetime64 соответственно.

format : string, default None

strftime для разбора времени, например “%d/%m/%Y”, обратите внимание, что “%f” будет разбор до наносекунд. См. документацию strftime для получения дополнительной информации о доступных вариантах: https://docs.python.org/3/library/datetime.html#strftime-and-strptime-behavior

exact : boolean, True by default
  • Если True, требуется точное соответствие формата.
  • Если False, формат может совпадать где угодно в целевой строке.
unit : string, default ‘ns’

единица аргумента (D, s, ms, us, ns) обозначает единицу, которая представляет собой целое или дробное число. Это будет основываться на происхождении. Например, с unit=’ms’ и origin=’unix’ (по умолчанию), это вычислит количество миллисекунд до начала эпохи unix.

infer_datetime_format : boolean, default False

Если True и format не задано, попытайтесь определить формат строк даты и времени, и если это возможно, переключитесь на более быстрый метод их разбора. В некоторых случаях это может увеличить скорость разбора на ~5-10 раз.

origin : scalar, default is ‘unix’

Определите дату отсчета. Численные значения будут интерпретированы как количество единиц (определенных unit) от этой даты отсчета.

  • Если ‘unix’ (или POSIX) время; origin устанавливается на 1970-01-01.
  • Если ‘julian’, единица должна быть ‘D’, и origin устанавливается на начало юлианского календаря. Номер юлианского дня 0 присваивается дню, начинающемуся в полдень 1 января 4713 г. до н. э.
  • Если преобразуемо к Timestamp, origin устанавливается на определенный Timestamp.

Добавлена в версии 0.20.0.

cache : boolean, default True

Если True, используйте кеш уникальных преобразованных дат для применения преобразования даты и времени. Может значительно ускорить разбор при парсинге повторяющихся строк дат, особенно с часовыми поясами.

Добавлена в версии 0.23.0.

Изменено в версии 0.25.0: - значение по умолчанию изменено с False на True

Возвращает:
ret : datetime if parsing succeeded.

Тип возвращаемого значения зависит от входных данных:

  • Список-подобный объект: DatetimeIndex
  • Series: Series типа datetime64
  • Скаляр: Timestamp

В случае, когда невозможно вернуть указанные типы (например, когда любой элемент входных данных находится до Timestamp.min или после Timestamp.max), возвращаемое значение будет иметь тип datetime.datetime (или соответствующий массив/Series).

См. также

DataFrame.astype
Преобразование аргумента в указанный тип.
to_timedelta
Преобразование аргумента в timedelta.

Примеры

Сборка даты и времени из нескольких столбцов DataFrame. Ключи могут быть общими аббревиатурами, например [‘год’, ‘месяц’, ‘день’, ‘минута’, ‘секунда’, ‘мс’, ‘мкс’, ‘нс’]) или множественными формами тех же

>>> df = pd.DataFrame({'year': [2015, 2016],
...                    'month': [2, 3],
...                    'day': [4, 5]})
>>> pd.to_datetime(df)
0   2015-02-04
1   2016-03-05
dtype: datetime64[ns]

Если дата не соответствует ограничениям timestamp, передача errors=’ignore’ вернет исходный ввод вместо повышения исключения.

Передача errors=’coerce’ принудительно установит дату вне допустимого диапазона как NaT, а также принудительно установит не даты (или неразборчивые даты) как NaT.

>>> pd.to_datetime('13000101', format='%Y%m%d', errors='ignore')
datetime.datetime(1300, 1, 1, 0, 0)
>>> pd.to_datetime('13000101', format='%Y%m%d', errors='coerce')
NaT

Передача infer_datetime_format=True часто ускоряет разбор, если формат не является строго ISO8601, но имеет регулярный формат.

>>> s = pd.Series(['3/11/2000', '3/12/2000', '3/13/2000'] * 1000)
>>> s.head()
0    3/11/2000
1    3/12/2000
2    3/13/2000
3    3/11/2000
4    3/12/2000
dtype: object
>>> %timeit pd.to_datetime(s,infer_datetime_format=True)  # doctest: +SKIP
100 loops, best of 3: 10.4 ms per loop
>>> %timeit pd.to_datetime(s,infer_datetime_format=False)  # doctest: +SKIP
1 loop, best of 3: 471 ms per loop

Использование времени эпохи unix

>>> pd.to_datetime(1490195805, unit='s')
Timestamp('2017-03-22 15:16:45')
>>> pd.to_datetime(1490195805433502912, unit='ns')
Timestamp('2017-03-22 15:16:45.433502912')

Предупреждение

Для плавающего аргумента может произойти округление точности. Для предотвращения неожиданного поведения используйте фиксированный точный тип.

Использование не-unix эпохи origin

>>> pd.to_datetime([1, 2, 3], unit='D',
...                origin=pd.Timestamp('1960-01-01'))
DatetimeIndex(['1960-01-02', '1960-01-03', '1960-01-04'], dtype='datetime64[ns]', freq=None)

© 2008–2012, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/0.25.0/reference/api/pandas.to_datetime.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API