查找日期时间是星期几64

时间:2018-09-19 05:00:21

标签: python numpy datetime

很抱歉,这很简单,但是我在numpy文档中看不到任何内容。我有一个datetime64,我想知道星期几。

与python datetime不同,datetime64似乎没有.weekday()函数。但是它确实具有busday_offset()函数,这意味着它必须在幕后才能知道给定日期是星期几。任何帮助表示赞赏。

3 个答案:

答案 0 :(得分:4)

请查看以下相关的SO问题:

Get weekday/day-of-week for Datetime column of DataFrame

我了解您的数据是一个numpy数组,通过熊猫将数据转换为数据框格式可能会很有用。如下所示。

import pandas as pd
df = pd.DataFrame(numpyArray)

假设您的数据现在位于数据框中,那么下面的代码(来自上面的链接)应为您提供工作日。

df['weekday'] = df['Timestamp'].dt.dayofweek

Sample Output

此外,该参考文献还可为您提供帮助。

https://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.dt.dayofweek.html

答案 1 :(得分:1)

如果您正在寻找一种真正的矢量化numpy方法,则可以执行以下操作:

def day_of_week_num(dts):
    return (dts.astype('datetime64[D]').view('int64') - 4) % 7

这有点古怪,只是利用了numpy.datetime64与unix时代(星期四)相关的事实。

(我不知道这是否是一个实现细节,可能会在没有通知的情况下偶然发生,但是您始终可以与assert np.zeros(1).astype('datetime64[D]') == np.datetime64('1970-01-01', 'D')进行检查。)

答案 2 :(得分:0)

我想你可以这样:

import numpy as np
import datetime
t = '2018-09-19'
t = np.datetime64(t)
day = t.astype(datetime.datetime).isoweekday()
print day

输出:

3