Измените стандартный целочисленный индекс кадра данных Pandas на индекс даты и времени, начиная с минуты 1, увеличивая на одну минуту - PullRequest
0 голосов
/ 20 февраля 2019

У меня есть фрейм данных pandas, индекс которого начинается с 1 и далее.Я рассматривал это как временной ряд, потому что моя проблема на самом деле заключается в подсчете минут, начиная с минуты 1, поэтому это было удобно.Однако теперь мне нужно преобразовать индекс в DateTime для реализации некоторых statsmodels.

Как я могу это сделать, если я не хочу переопределять всю мою работу до сих пор?

Я пробовал

df.index = pd.to_datetime(pd.index)

, но это начинается 1970-01-01 00: 00: 00.000000001.Я хотел бы, чтобы это началось с "00:01:00" и далее с шагом в 1 минуту, есть какие-либо предложения?

1 Ответ

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

Используйте to_timedelta, передавая unit='m' (для минут) в качестве аргумента.

df = pd.DataFrame({'A': ['x'] * 10})

df.index = pd.to_timedelta(pd.RangeIndex(1, len(df)+1), unit='m')
df    
          A
00:01:00  x
00:02:00  x
00:03:00  x
00:04:00  x
00:05:00  x
00:06:00  x
00:07:00  x
00:08:00  x
00:09:00  x
00:10:00  x

Если ваш индекс монотонно увеличивается, вы можете упростить приведенное выше выражение до

df.index = pd.to_timedelta(df.index+1, unit='m')
df    
          A
00:01:00  x
00:02:00  x
00:03:00  x
00:04:00  x
00:05:00  x
00:06:00  x
00:07:00  x
00:08:00  x
00:09:00  x
00:10:00  x
...