Spec-Zone.ru › pandas 0.23

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=False) [source]

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

Параметры:

arg : целое число, число с плавающей запятой, строка, дата и время, список, кортеж, одномерный массив, Series

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

errors : {‘ignore’, ‘raise’, ‘coerce’}, по умолчанию ‘raise’

  • Если ‘raise’, некорректный разбор вызовет исключение
  • Если ‘coerce’, некорректный разбор будет задан как NaT
  • Если ‘ignore’, некорректный разбор вернет исходное значение

dayfirst : логическое значение, по умолчанию False

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

yearfirst : логическое значение, по умолчанию False

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

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

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

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

utc : логическое значение, по умолчанию None

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

box : логическое значение, по умолчанию True

  • Если True, возвращает DatetimeIndex
  • Если False, возвращает массив значений.

format : строка, по умолчанию None

strftime для разбора времени, например, “%d/%m/%Y”, обратите внимание, что “%f” будет анализировать до наносекунд.

exact : логическое значение, True по умолчанию

  • Если True, требуется точное соответствие формату.
  • Если False, формат может соответствовать в любом месте целевой строки.

unit : строка, по умолчанию ‘ns’

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

infer_datetime_format : логическое значение, по умолчанию False

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

origin : скаляр, по умолчанию ‘unix’

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

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

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

cache : логическое значение, по умолчанию False

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

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

Возвращает:

ret : дата и время, если разбор прошёл успешно.

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

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

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

См. также

pandas.DataFrame.astype
Преобразование аргумента к заданному типу.
pandas.to_timedelta
Преобразование аргумента в интервал времени.

Примеры

Создание даты и времени из нескольких столбцов DataFrame. Ключи могут быть общими аббревиатурами, такими как [‘year’, ‘month’, ‘day’, ‘minute’, ‘second’, ‘ms’, ‘us’, ‘ns’]) или множественное число от того же

>>> 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]

Если дата не соответствует ограничениям временных меток, передача 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)
100 loops, best of 3: 10.4 ms per loop
>>> %timeit pd.to_datetime(s,infer_datetime_format=False)
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 эпохи в качестве начала отсчёта

>>> pd.to_datetime([1, 2, 3], unit='D',
                   origin=pd.Timestamp('1960-01-01'))
0    1960-01-02
1    1960-01-03
2    1960-01-04

© 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.23.4/generated/pandas.to_datetime.html

Spec-Zone.ru

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