Поиск дня недели для datetime64 - PullRequest
0 голосов
/ 19 сентября 2018

Извините, если это легко, но я ничего не вижу в документации numpy.У меня есть datetime64, и я хотел бы узнать, какой это день недели.

В отличие от python datetime, datetime64, похоже, не имеет функции .weekday().Однако у него есть функция busday_offset(), которая подразумевает, что он должен знать за кадром, какой день недели является данной датой.Любая помощь с благодарностью.

Ответы [ 3 ]

0 голосов
/ 19 сентября 2018

Я думаю, вы могли бы сделать так:

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

Вывод:

3
0 голосов
/ 19 января 2019

Если вы ищете по-настоящему векторизованный подход numpy, вы можете сделать:

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

Это немного глупо и просто использует тот факт, что numpy.datetime64 s относятся к unixэпоха, которая была четвергом.

(я не знаю, может ли эта деталь реализации измениться без уведомления, но вы всегда можете проверить с помощью assert np.zeros(1).astype('datetime64[D]') == np.datetime64('1970-01-01', 'D').)

0 голосов
/ 19 сентября 2018

Пожалуйста, посмотрите на следующий связанный вопрос SO:

Получить день недели / день недели для столбца Datetime в DataFrame

Я понимаю, что ваши данныеnumpy array, может быть полезно преобразовать ваши данные в формат dataframe через pandas.Это показано ниже.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...