#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')
Не могу придумать лучшего способа, но вы могли бы обернуть вышесказанное в функцию, чтобы проверить, нужно ли вам устанавливать год