在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')