Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 将datetime转换为numpy datetime_Python 3.x_Pandas_Numpy_Datetime64 - Fatal编程技术网

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)