проанализировал время с помощью панд - PullRequest
0 голосов
/ 26 февраля 2019

Недавно я получил некоторые данные с интервалом времени.После того, как он использовал метки времени с помощью панд, я заметил, что год вернулся с 1970 года, но данные получены примерно из статистики видеоигр за 2018 год.

Я пытался

df['date'] = pd.to_datetime(df.creationTime, inferdatetime_format=True)

df['date'].describe()

count 51490
unique 51052
top 1970-01-01 00:25:04.380431622
freq 3
first 1970-01-01 00:24:56.891694922
last 1970-01-01 00:25:04.707332198
Name: date, dtype: object

, провайдер сообщает единицу времениэто секунды, но, например, для

1504279457970   

pd.to_datetime(1504279457970, infer_datetime_format=True)
Timestamp('1970-01-01 00:25:04.279457970')

и

pd.to_datetime(1504279457970, unit = 's')
...
OutOfBoundsDatetime: cannot convert input with unit 's'

Em'i что-то не так делает?

Я новичок в Python, поэтому я нене знаю, наивен ли я.

Спасибо!

1 Ответ

0 голосов
/ 26 февраля 2019

Вполне вероятно, что временная метка была дана вам с точностью до мс.Как вы показали, попытка преобразовать метку времени в дату и время с точностью до секунды приводит к ошибке OutOfBoundsDatetime.Если вы предполагаете, что метка времени имеет точность в миллисекундах, то вы получите дату в 2017 году, которая более вероятна.

Похоже, что панды предполагали, что вы использовали наносекундные точные метки времени, когда вы указали метод с inferdatetime_format=True аргумент.

>>> pd.to_datetime(1504279457970, unit = 's')
Traceback (most recent call last):
  ...
pandas._libs.tslibs.np_datetime.OutOfBoundsDatetime: cannot convert input with unit 's'
>>> pd.to_datetime(1504279457970, unit = 'ms')
Timestamp('2017-09-01 15:24:17.970000')
>>> pd.to_datetime(1504279457970, unit = 'ns')
Timestamp('1970-01-01 00:25:04.279457970')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...