нарезка временных рядов pandas :ween_time возвращает значение NaN при использовании внутри оператора запроса np.where - PullRequest
0 голосов
/ 24 мая 2019

Я пытаюсь обозначить определенный период времени, который повторяется в наборе данных временного ряда. Я используюween_time () внутри np.where (). Возвращает значение NaN.

Чего мне не хватает?

import pandas as pd 
import numpy as np
data_df = pd.read_csv("data.csv")
data_df['Datetime'] = pd.to_datetime(data_df['Date'] + ' ' + data_df['Time'])
data_df = data_df.set_index('Datetime')
data_df['label'] =pd.Series(np.where(data_df['Time'].between_time('16:00','9:00'), "time1", "time2"))
data_df.head()

Изображение таблицы

1 Ответ

0 голосов
/ 24 мая 2019

Существует альтернативное решение, использующее apply, которое может быть немного сложным, но выполнять работу


df['Label'] = df['time'].apply(lambda x : 'time1' if x < '09:00:00' and x > '06:00:00' else 'time2')

print(df[df['Label']=='time1'].head()) #show time1 values

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