2016-03-14 3 views
1

Это может быть прямой ответ, но я не вижу его в документации Pandas v0.17.1.Pandas Single Timestamp с индексом смещений

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

Time Input A 
0  0 3.3337 
1 500 3.3096 
2 1001 3.3044 
3 1501 3.3630 
4 2004 3.2822 
5 2504 3.3335 

Я бы хотел заменить столбец «Время» на фактическое время.

Вот что я беру из файла данных (.xls):

>>> pd.to_datetime('Tue Mar 08 11:20:40 EST 2016') 
Timestamp('2016-03-08 11:20:40') 

Я пытаюсь использовать следующее:

>>> pd.to_datetime(df['Time'], unit='ms') 
0  1970-01-01 00:00:00.000 
1  1970-01-01 00:00:00.500 
2  1970-01-01 00:00:01.001 
3  1970-01-01 00:00:01.501 
4  1970-01-01 00:00:02.004 

Но, конечно же, дата начала неправильно. Я не видел нигде, что позволило мне выбрать дату и время начала.

ответ

1

Я думаю, что вы можете applypd.offsets.Milli и DateTime d:

print df 
    Time Input A 
0  0 3.3337 
1 500 3.3096 
2 1001 3.3044 
3 1501 3.3630 
4 2004 3.2822 
5 2504 3.3335 

d = pd.to_datetime('Tue Mar 08 11:20:40 EST 2016') 
print d 
2016-03-08 11:20:40 

print df['Time'].apply(lambda x: pd.offsets.Milli(x) + d) 
0 2016-03-08 11:20:40.000 
1 2016-03-08 11:20:40.500 
2 2016-03-08 11:20:41.001 
3 2016-03-08 11:20:41.501 
4 2016-03-08 11:20:42.004 
5 2016-03-08 11:20:42.504 
Name: Time, dtype: datetime64[ns] 
+0

Отлично! Я должен был начать изучать панды давным-давно. Благодарю. – Chris

Смежные вопросы