Как преобразовать числовой столбец (без календарной даты) в datetime - PullRequest
0 голосов
/ 05 мая 2019

Я работаю с данными временного ряда в pandas df, которые не имеют реальной календарной даты, но имеют индексное значение, указывающее равный интервал времени между каждым значением. Я пытаюсь преобразовать его в тип datetime с ежедневной или еженедельной периодичностью. Есть ли способ сохранить значения при изменении типа (например, без установки фактической даты каландра)?

Index,Col1,Col2

1,6.5,0.7

2,6.2,0.3

3,0.4,2.1

1 Ответ

1 голос
/ 05 мая 2019

pd.to_datetime может создавать даты при заданных единицах времени относительно некоторого происхождения. По умолчанию используется источник POSIX 1970-01-01 00:00:00 и время в наносекундах.

import pandas as pd

df['date1'] = pd.to_datetime(df.index, unit='D', origin='2010-01-01')
df['date2'] = pd.to_datetime(df.index, unit='W')

Выход:

#       Col1  Col2      date1      date2
#Index                                  
#1       6.5   0.7 2010-01-02 1970-01-08
#2       6.2   0.3 2010-01-03 1970-01-15
#3       0.4   2.1 2010-01-04 1970-01-22

В качестве альтернативы, вы можете добавить timedelta s к указанному началу:

pd.to_datetime('2010-01-01') + pd.to_timedelta(df.index, unit='D')

или просто оставьте их как timedelta:

pd.to_timedelta(df.index, unit='D')
#TimedeltaIndex(['1 days', '2 days', '3 days'], dtype='timedelta64[ns]', name='Index', freq=None)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...