Chr*_*per 4 python datetime numpy
抱歉,这很简单,但是我在numpy文档中看不到任何内容。我有一个datetime64,我想知道是星期几。
与python不同datetime,datetime64它似乎没有.weekday()功能。但是它确实具有busday_offset()功能,这意味着它必须在幕后才能知道给定日期是星期几。任何帮助,不胜感激。
我认为你可以这样做:
import numpy as np
import datetime
t = '2018-09-19'
t = np.datetime64(t)
day = t.astype(datetime.datetime).isoweekday()
print day
Run Code Online (Sandbox Code Playgroud)
输出:
3
Run Code Online (Sandbox Code Playgroud)
如果您正在寻找一种真正矢量化的 numpy 方法,您可以这样做:
def day_of_week_num(dts):
return (dts.astype('datetime64[D]').view('int64') - 4) % 7
Run Code Online (Sandbox Code Playgroud)
这有点老套,只是利用了一个事实,即numpy.datetime64s 相对于 unix 时代,即星期四。
(我不知道这是否是一个可以在不通知的情况下更改的实现细节,但您可以随时使用 进行检查assert np.zeros(1).astype('datetime64[D]') == np.datetime64('1970-01-01', 'D')。)
请查看以下相关的SO问题:
我了解您的数据是一个numpy数组,通过熊猫将数据转换为数据框格式可能会很有用。如下所示。
import pandas as pd
df = pd.DataFrame(numpyArray)
Run Code Online (Sandbox Code Playgroud)
如果您的数据现在位于数据框中,则下面的代码(来自上面的链接)应为您提供工作日。
df['weekday'] = df['Timestamp'].dt.dayofweek
Run Code Online (Sandbox Code Playgroud)
此外,本参考书也可能为您提供帮助。
https://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.dt.dayofweek.html
| 归档时间: |
|
| 查看次数: |
2951 次 |
| 最近记录: |