我有一个熊猫数据框,其索引从1开始。我一直将其视为时间序列,因为我的问题实际上涉及从分钟1开始计算的分钟数,因此非常方便。但是,现在我需要将索引转换为DateTime才能实现一些statsmodels。
如果到目前为止我不想重新定义整个工作,该怎么办?
我尝试过
df.index = pd.to_datetime(pd.index)
但这始于1970-01-01 00:00:00.000000001。我想从“ 00:01:00”开始,每增加1分钟,有什么建议吗?
答案 0 :(得分:2)
使用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