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')[source] -
Преобразование аргумента в дату и время.
Параметры: arg : целое число, число с плавающей точкой, строка, datetime, список, кортеж, одномерный массив, Series
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 выполняется в первую очередь (так же, как и в dateutil).
Предупреждение: yearfirst=True не является строгим, но предпочтительно разбирать с годом вначале (эта проблема известна, основана на поведении dateutil).
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’
единица измерения аргумента (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’, unit должен быть ‘D’, и origin установлен на начало юлианского календаря. Юлианский номер дня 0 присваивается дню, начинающемуся в полдень 1 января 4713 г. до н.э.
- Если Timestamp допускает преобразование, origin установлен на идентифицированный origin Timestamp.
Возвращает: ret : дата и время, если разбор прошёл успешно.
Тип возвращаемого значения зависит от входных данных:
- подобные списки: DatetimeIndex
- Series: Series типа datetime64
- скаляр: Timestamp
В случае, когда невозможно вернуть указанные типы (например, когда любой элемент входных данных находится до Timestamp.min или после Timestamp.max), возврат будет иметь тип datetime.datetime (или соответствующий массив/Series).
См. также
-
pandas.DataFrame.astype - Преобразование аргумента к указанному типу.
-
pandas.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]Если дата не соответствует ограничениям отметки времени, передача 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.21.1/generated/pandas.to_datetime.html