在Python中将连续数字重新编码为连续日期

在Python中将连续数字重新编码为连续日期,python,pandas,dataframe,recode,Python,Pandas,Dataframe,Recode,我有一个变量看起来像 1,1,1,1, 2,2,2,3,3,3,3,3,4,4,5,6,6,6, ,.....100,100,100 在我的实际情况下,将有超过1000个日期(或更多)要重新编码,并且还必须考虑闰年。< /P> 如果有一个优雅的方式来处理它,请欣赏 非常感谢您对初学者的帮助。熊猫有一个“日期范围”方法,可以根据开始日期、增量和结束日期返回一系列间隔规则的日期对象。您可以使用它来构建一个以单天为间隔的日期序列,然后使用它将这些索引(1,1,1,2,2,…)中的每个索引与日期范围序

我有一个变量看起来像

1,1,1,1, 2,2,2,3,3,3,3,3,4,4,5,6,6,6, ,.....100,100,100
在我的实际情况下,将有超过1000个日期(或更多)要重新编码,并且还必须考虑闰年。< /P> 如果有一个优雅的方式来处理它,请欣赏

非常感谢您对初学者的帮助。

熊猫有一个“日期范围”方法,可以根据开始日期、增量和结束日期返回一系列间隔规则的日期对象。您可以使用它来构建一个以单天为间隔的日期序列,然后使用它将这些索引(1,1,1,2,2,…)中的每个索引与日期范围序列中的日期对象关联

熊猫有一个“日期范围”方法,可以根据开始日期、增量和结束日期返回一系列间隔规则的日期对象。您可以使用它来构建一个以单天为间隔的日期序列,然后使用它将这些索引(1,1,1,2,2,…)中的每个索引与日期范围序列中的日期对象关联


您可以使用
pd.date\u range
pd.DateOffset

range_var = list(range(1000))
end_date = pd.Timestamp('31.12.2020') 

date_dict = dict(zip(range_var[::-1], #reverse the list.
         pd.date_range(
         end_date - pd.DateOffset(days=max(range_var)),
         end_date,
         freq='D'
            )
        )
    )



df = pd.DataFrame.from_dict(date_dict,orient='index').sort_index()


             0
0   2020-12-31
1   2020-12-30
2   2020-12-29
3   2020-12-28
4   2020-12-27
..         ...
995 2018-04-11
996 2018-04-10
997 2018-04-09
998 2018-04-08
999 2018-04-07

您可以使用
pd.date\u range
pd.DateOffset

range_var = list(range(1000))
end_date = pd.Timestamp('31.12.2020') 

date_dict = dict(zip(range_var[::-1], #reverse the list.
         pd.date_range(
         end_date - pd.DateOffset(days=max(range_var)),
         end_date,
         freq='D'
            )
        )
    )



df = pd.DataFrame.from_dict(date_dict,orient='index').sort_index()


             0
0   2020-12-31
1   2020-12-30
2   2020-12-29
3   2020-12-28
4   2020-12-27
..         ...
995 2018-04-11
996 2018-04-10
997 2018-04-09
998 2018-04-08
999 2018-04-07
pd.TimeStamp('2021/01/01')-pd.to_timedelta(变量列表,单位=D')
pd.TimeStamp('2021/01/01')-pd.to_timedelta(变量列表,单位=D')