Python 将int数据类型表示的年份列表转换为DatetimeIndex的更好方法

Python 将int数据类型表示的年份列表转换为DatetimeIndex的更好方法,python,pandas,python-datetime,Python,Pandas,Python Datetime,下面是包含年份的整数列表,我想转换为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-0

下面是包含年份的整数列表,我想转换为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") 
为什么我必须首先转换为字符串数据类型


有更好的选择吗?

我认为原因是在unix时代工作时,不同的
单位
参数:

单位,默认为“N”

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


但是如果值是年的整数,它只是日期时间的格式不同,所以对我来说这更符合逻辑。

此外,如果我得到正确的答案,只允许使用
(D,s,ms,us,ns)
的单位,这是合理的,因为任何大于一周的时间跨度都是不明确的(例如,月份可以有不同的天数)是的,我完全被愚弄了,伙计们,谢谢你们的时间:)不要让数据类型愚弄你们——只是因为它是
int
,在某种格式下仍然是一年(见耶兹雷尔的回答)。如果这些是64位整数,那么4字节的ASCII甚至更有效!我会坚持转换成字符串,然后解析它。是的,我完全被愚弄了,我有很好的理由感到愚蠢D