Измените intIndex на timedeltaIndex - PullRequest
0 голосов
/ 17 мая 2018

Мой индекс:

Int64Index([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
            17, 18, 19, 20, 21, 22, 23],
           dtype='int64')

Я хотел бы сделать это как:

timedelta64[ns]([0:00, 1:00, 2:00, 3:00 ... %H:%M])

Я пробовал:

df.index = pd.to_timedelta(df.index)

Но это просто меняется на: 00:00:00.000000 везде.

1 Ответ

0 голосов
/ 17 мая 2018

Мне кажется нужно to_timedelta или TimedeltaIndex с параметром unit:

df.index = pd.to_timedelta(df.index, unit='H')

Или:

df.index = pd.TimedeltaIndex(df.index, unit='H')

Пример:

a = pd.Int64Index([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
            17, 18, 19, 20, 21, 22, 23])

b = pd.to_timedelta(a, unit='H')
print (b)
TimedeltaIndex(['00:00:00', '01:00:00', '02:00:00', '03:00:00', '04:00:00',
                '05:00:00', '06:00:00', '07:00:00', '08:00:00', '09:00:00',
                '10:00:00', '11:00:00', '12:00:00', '13:00:00', '14:00:00',
                '15:00:00', '16:00:00', '17:00:00', '18:00:00', '19:00:00',
                '20:00:00', '21:00:00', '22:00:00', '23:00:00'],
               dtype='timedelta64[ns]', freq=None)
...