将数字相对索引(=月)转换为日期时间

时间:2019-01-08 00:39:21

标签: python-3.x pandas datetime time-series

Given是一个Pandas DataFrame,其数字索引表示相对月份数:

df = pd.DataFrame(columns=['A', 'B'], index=np.arange(1,100))
df

    A   B
1   NaN NaN
2   NaN NaN
3   NaN NaN
... 

如何通过指定开始日期(例如2018-11-01)将索引转换为DateTimeIndex?

magic_function(df, start='2018-11-01', delta='month')

           A  B
2018-11-01 NaN NaN
2018-12-01 NaN NaN
2019-01-01 NaN NaN
...

我希望一般解决方案也适用于任意增量,例如每日或每年的系列。

2 个答案:

答案 0 :(得分:1)

使用date_range

idx=pd.date_range(start='2018-11-01',periods =len(df),freq='MS')
df.index=idx

答案 1 :(得分:0)

我不确定使用Pandas,但是使用普通datetime不能只这样做吗?

import datetime start=datetime.date(2018,1,1) months = 15 adjusted = start.replace(year=start.year + int(months/12), month=months%12)