Python 3.x 将datetime转换为numpy datetime
一个相当简单的问题,我似乎无法理解 安装程序 给定一个Python 3.x 将datetime转换为numpy datetime,python-3.x,pandas,numpy,datetime64,Python 3.x,Pandas,Numpy,Datetime64,一个相当简单的问题,我似乎无法理解 安装程序 给定一个datetime.date或pandates.datetime我试图将一些不可避免地会通过pandas.to_datetime转换为对象的日期进行偏移,该对象在与numpy.busday\u offset一起使用时会失败,如下示例所示 将numpy导入为np 作为pd进口熊猫 #很好 np.busday_偏移量(datetime.date(2020,1,1,3)) #失败 np.busday_偏移量(pd.to_datetime(dateti
datetime.date
或pandates.datetime
我试图将一些不可避免地会通过pandas.to_datetime
转换为对象的日期进行偏移,该对象在与numpy.busday\u offset
一起使用时会失败,如下示例所示
将numpy导入为np
作为pd进口熊猫
#很好
np.busday_偏移量(datetime.date(2020,1,1,3))
#失败
np.busday_偏移量(pd.to_datetime(datetime.date(2020,1,1)),3)
#失败
np.busday_偏移量(pd.to_datetime(datetime.date(2020,1,1)).to_numpy(),3)
#很好
pd.bdate_范围(开始=日期时间日期(2020年1月1日),
结束=日期时间日期(2020年4月14日),
频率='20B')
#失败
np.busday\u偏移量(pd.bdate\u范围(开始=日期时间日期(2020,1,1)),
结束=日期时间日期(2020年4月14日),
频率='20B'),3)
问题:
如何从格式为
datetime64[ns]
(由pandas.to\u datetime
或pandas.bdate\u date
)的日期到datetime64[D]
(可通过numpy.busday\u offset
?识别。问题似乎是pd.to\u datetime生成的数据类型与np.busday\u offset不兼容。需要先将其转换为日期
np.busday_offset(pd.to_datetime(datetime.date(2020, 1, 1)).date(), 3)
类似地,对于date_范围,您可以执行以下操作:
drange = pd.bdate_range(start = datetime.date(2020, 1, 1), end = datetime.date(2020, 4, 14),freq = '20B')
np.busday_offset([e.date() for e in drange], 3)
问题似乎是pd.to_datetime生成的数据类型与np.busday_offset不兼容。需要先将其转换为日期
np.busday_offset(pd.to_datetime(datetime.date(2020, 1, 1)).date(), 3)
类似地,对于date_范围,您可以执行以下操作:
drange = pd.bdate_range(start = datetime.date(2020, 1, 1), end = datetime.date(2020, 4, 14),freq = '20B')
np.busday_offset([e.date() for e in drange], 3)
除了艾伦的答案,我和一些同事一起找到了另一个答案
将numpy导入为np
作为pd进口熊猫
#很好
np.busday_偏移量(datetime.date(2020,1,1,3))
#现在一切正常
np.busday_offset(pd.to_datetime(datetime.date(2020,1,1)).to_numpy().astype('datetime64[D]),3)
#现在一切正常
np.busday_offset(pd.to_datetime(datetime.date(2020,1,1)).to_numpy().astype('datetime64[D]),3)
#很好
pd.bdate_范围(开始=日期时间日期(2020年1月1日),
结束=日期时间日期(2020年4月14日),
频率='20B')
#现在一切正常
np.busday\u偏移量(pd.bdate\u范围(开始=日期时间日期(2020,1,1)),
结束=日期时间日期(2020年4月14日),
freq='20B')。to_numpy().astype('datetime64[D]),3)
除了艾伦的答案,我和一些同事一起找到了另一个答案
将numpy导入为np
作为pd进口熊猫
#很好
np.busday_偏移量(datetime.date(2020,1,1,3))
#现在一切正常
np.busday_offset(pd.to_datetime(datetime.date(2020,1,1)).to_numpy().astype('datetime64[D]),3)
#现在一切正常
np.busday_offset(pd.to_datetime(datetime.date(2020,1,1)).to_numpy().astype('datetime64[D]),3)
#很好
pd.bdate_范围(开始=日期时间日期(2020年1月1日),
结束=日期时间日期(2020年4月14日),
频率='20B')
#现在一切正常
np.busday\u偏移量(pd.bdate\u范围(开始=日期时间日期(2020,1,1)),
结束=日期时间日期(2020年4月14日),
freq='20B')。to_numpy().astype('datetime64[D]),3)