Я согласен с @MrE, так как он говорит:
Я думаю, что это имеет смысл: 5 - это не объект даты и времени, поэтому pandas анализирует данные и обнаруживает, что у вас есть и число, иобъект datetime, и он анализирует оба как строку 'object', потому что dtype должен быть согласован для всех данных в Серии.Строковое представление даты и времени - это строка даты, а не метка времени.Затем, добавив к нему, вы можете изменить dtype ячейки
Я действительно согласен, он должен найти dtype
и найти int
, если вы уроните индекс 'a'
, это будет работать (это в основном проверяет, верно ли указанное выше):
g = pd.Series(dict(b =datetime(2018, 1,1)))
g['datetime'] = pd.Timestamp('2018-01-02')
print(g)
Вывод:
b 2018-01-01
datetime 2018-01-02
dtype: datetime64[ns]
Так что это правда.
Длярешить проблему:
Просто добавьте дополнительную строку в конце:
g['datetime']=pd.to_datetime(g['datetime'])
А теперь:
print(g)
Is:
a 5
b 2018-01-01 00:00:00
datetime 2018-01-02 00:00:00
dtype: object