首页 > 解决方案 > 将由 int 数据类型表示的年份列表转换为 DatetimeIndex 的更好方法

问题描述

我有以下包含年份的整数列表,我想转换为 DatetimeIndex。

date_1=[2000,2001,2002,2003]
#converting to string
date_1_str=[str(i) for i in date_1]
#converting to Datetime
test=pd.to_datetime(date_1_str,format="%Y")
print(test)

输出:

DatetimeIndex(['2000-01-01', '2001-01-01', '2002-01-01', '2003-01-01'], dtype='datetime64[ns]', freq=None)

为什么我不能做更直接的事情,比如:

pd.to_datetime(date_1, unit="Y") 

为什么我必须先转换为字符串数据类型?

有没有更好的选择?

标签: pythonpandaspython-datetime

解决方案


我认为原因是工作不同的unit参数to_datetime,与unix时代一起工作:

单位,默认'ns'</p>

arg 的单位 (D,s,ms,us,ns) 表示单位,它是整数或浮点数。这将基于原点。例如,使用 unit='ms' 和 origin='unix' (默认值),这将计算到 unix 纪元开始的毫秒数。

但是如果值是整数年,它只是format日期时间不同,所以对我来说,这里使用的逻辑更多。


推荐阅读