Nil*_*dat 6 python datetime numpy
我对 numpy 和 pandas 日期对象之间的互操作感到困惑(或者通常只是 numpy 的 datetime64)。
我试图使用 numpy 的内置功能来计算工作日,如下所示:
np.busday_count("2016-03-01", "2016-03-31", holidays=[np.datetime64("28/03/2016")])
Run Code Online (Sandbox Code Playgroud)
然而,numpy 显然无法处理反转的日期格式:
ValueError: Error parsing datetime string "28/03/2016" at position 2
Run Code Online (Sandbox Code Playgroud)
为了解决这个问题,我想我应该使用 pandas to_datetime,它可以。然而:
np.busday_count("2016-03-01", "2016-03-31", holidays=[np.datetime64(pd.to_datetime("28/03/2016"))])
ValueError: Cannot safely convert provided holidays input into an array of dates
Run Code Online (Sandbox Code Playgroud)
搜索了一下,这似乎是由于 to_datetime 和 np.datetime64 的链接产生一个datetime64[us]对象而引起的,而该对象显然是该busday_count函数无法接受的(这是预期的行为还是错误?)。因此,我的下一个尝试是:
np.busday_count("2016-03-01", "2016-03-31", holidays=[np.datetime64(pd.Timestamp("28"), "D")])
Run Code Online (Sandbox Code Playgroud)
但:
TypeError: Cannot cast datetime.datetime object from metadata [us] to [D] according to the rule 'same_kind'
Run Code Online (Sandbox Code Playgroud)
这就是我的问题 - 为什么所有这些日期时间格式之间存在如此多的不兼容性?我怎样才能绕过它们?
我在使用时遇到了同样的问题np.busday_count,后来我发现问题出在hours、minutes、seconds和将其转换为对象或对象milliseconds时添加。datetimenumpy datetime
我刚刚转换为datetime仅包含日期而不包含hours、minutes、seconds和 的对象milliseconds。
以下是我的代码:
holidays_list.json文件:
{
"holidays_2019": [
"04-Mar-2019",
"21-Mar-2019",
"17-Apr-2019",
"19-Apr-2019",
"29-Apr-2019",
"01-May-2019",
"05-Jun-2019",
"12-Aug-2019",
"15-Aug-2019",
"02-Sep-2019",
"10-Sep-2019",
"02-Oct-2019",
"08-Oct-2019",
"28-Oct-2019",
"12-Nov-2019",
"25-Dec-2019"
],
"format": "%d-%b-%Y"
}
Run Code Online (Sandbox Code Playgroud)
code file:
{
"holidays_2019": [
"04-Mar-2019",
"21-Mar-2019",
"17-Apr-2019",
"19-Apr-2019",
"29-Apr-2019",
"01-May-2019",
"05-Jun-2019",
"12-Aug-2019",
"15-Aug-2019",
"02-Sep-2019",
"10-Sep-2019",
"02-Oct-2019",
"08-Oct-2019",
"28-Oct-2019",
"12-Nov-2019",
"25-Dec-2019"
],
"format": "%d-%b-%Y"
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7086 次 |
| 最近记录: |