pandas.to_datetime
-
pandas.to_datetime(*args, **kwargs) -
Преобразовать аргумент в дату и время.
Параметры: arg : строка, datetime, список, кортеж, одномерный массив, Series
errors : {‘ignore’, ‘raise’, ‘coerce’}, по умолчанию ‘raise’
- Если ‘raise’, то некорректный разбор вызовет исключение
- Если ‘coerce’, то некорректный разбор будет установлен как NaT
- Если ‘ignore’, то некорректный разбор вернёт входные данные
dayfirst : boolean, по умолчанию False
Укажите порядок разбора даты, если
argявляется строкой или её списковыми аналогами. Если True, то разбор дат выполняется с днём впереди, например, 10/11/12 будет разобран как 2012-11-10. Предупреждение: dayfirst=True не является жёстким, но будет предпочитать разбор с днём впереди (это известная ошибка, основанная на поведении dateutil).yearfirst : boolean, по умолчанию False
Укажите порядок разбора даты, если
argявляется строкой или её списковыми аналогами.- Если True, то разбор дат выполняется с годом впереди, например, 10/11/12 будет разобран как 2010-11-12.
- Если оба dayfirst и yearfirst True, то yearfirst выполняется раньше (так же, как и в dateutil).
Предупреждение: yearfirst=True не является жёстким, но будет предпочитать разбор с годом впереди (это известная ошибка, основанная на поведении dateutil).
utc : boolean, по умолчанию None
Возвращает UTC DatetimeIndex, если True (преобразуя любые tz-aware datetime.datetime объекты тоже).
box : boolean, по умолчанию True
- Если True, возвращается DatetimeIndex
- Если False, возвращается массив значений.
format : строка, по умолчанию None
strftime для разбора времени, например, “%d/%m/%Y”, обратите внимание, что “%f” будет анализировать значения вплоть до наносекунд.
exact : boolean, по умолчанию True
- Если True, требуется точное соответствие формата.
- Если False, формат может соответствовать любой части целевой строки.
unit : единица измерения arg (D,s,ms,us,ns) обозначает единицу в эпохе
(например, метка времени Unix), которая является целым/вещественным числом.
infer_datetime_format : boolean, по умолчанию False
Если True и
formatне указан, попытаться определить формат строк даты и времени, и если это возможно, переключиться на более быстрый метод разбора. В некоторых случаях это может увеличить скорость разбора в ~5-10 раз.Возвращает: ret : дата и время, если разбор выполнен успешно.
Тип возвращаемого значения зависит от входных данных:
- списковые данные: DatetimeIndex
- Series: Series с типом datetime64
- скалярное значение: Timestamp
В случае, когда невозможно вернуть указанные типы (например, когда любой элемент входных данных находится до Timestamp.min или после Timestamp.max), возвращаемое значение будет иметь тип datetime.datetime (или соответствующий массив/Series).
Примеры
Сборка даты и времени из нескольких столбцов 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=’coerce’ принудительно установит её как NaT. Кроме того, это также принудительно установит не-даты как NaT.
>>> pd.to_datetime('13000101', format='%Y%m%d') 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
© 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.18.1/generated/pandas.to_datetime.html