Присвоение значения метки времени серии с пандами вместо этого создает int - PullRequest
0 голосов
/ 20 мая 2018

В Python, Pandas:

g = pd.Series(dict(a = 5, b =datetime(2018, 1,1)))
g['datetime'] = pd.Timestamp('2018-01-02')

g возвращает:

a                             5
b           2018-01-01 00:00:00
datetime    1514851200000000000
dtype: object

У любого есть представление, почему метка времени здесь преобразуется в значение int и как ее избежатьпроблема и правильно ли прикрепить метку времени к серии?

Ответы [ 2 ]

0 голосов
/ 02 апреля 2019

Если тип данных вашей серии не относится к одному из типов даты (например, datetime64 [нс]), это происходит.Когда вы присваиваете значение g ['datetime'], ваша серия имеет тип данных объекта.Следовательно, это происходит.Также обратите внимание, что отметка времени этого целого числа совпадает с датой

pd.Timestamp(1514851200000000000)
>>> Timestamp('2018-01-02 00:00:00')

Целое число представляет время unix в наносекундах

0 голосов
/ 11 января 2019

Я согласен с @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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...