pandas to_datetime функция год по умолчанию

#pandas

#pandas

Вопрос:

Я новичок в pandas, когда я запускаю приведенный ниже код, я получаю другой результат:

 import pandas as pd

ts = pd.to_datetime("2014-6-10 10:10:10.30",format="%Y-%m-%d %H:%M:%S.%f")
print ts
ts = pd.to_datetime("6-10 10:10:10.30",format="%m-%d %H:%M:%S.%f")
print ts
  

Вывод:

 2014-06-10 10:10:10.300000
1900-06-10 10:10:10.300000
  

Это означает, что год по умолчанию равен 1900, как я могу изменить его на 2014 для второго?

Ответ №1:

Вы не можете записывать в year атрибут datetime, поэтому проще всего использовать replace :

 In [57]:

ts = ts.replace(year=2014)
ts
Out[57]:
Timestamp('2014-06-10 10:10:10.300000')
  

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

 In [68]:

this_year = str(datetime.datetime.now().year)
datestr = this_year  '-'   '6-10 10:10:10.30'
pd.to_datetime(datestr,format="%Y-%m-%d %H:%M:%S.%f")
Out[68]:
Timestamp('2014-06-10 10:10:10.300000')
  

Не могу придумать лучшего способа, но вы могли бы обернуть вышесказанное в функцию, чтобы проверить, нужно ли вам устанавливать год