У меня есть данные временных рядов, в которых я пытаюсь создать отдельные кадры данных в Пандах, которые будут иметь значение 0 или 1 в зависимости от того, является ли индекс конкретным днем недели, а другой - конкретным временем.
Например, я могу создать некоторые данные с помощью:
import pandas as pd
import numpy as np
from numpy.random import randint
#time = pd.date_range('6/28/2013', periods=2000, freq='5min')
#df = pd.Series(np.random.randint(100, size=2000), index=time)
rng = pd.date_range('10/9/2018 00:00', periods=5, freq='6H')
df = pd.DataFrame({'Random_Number':randint(1, 10, 5)}, index=rng)
df.head()
И если я делаю это правильно, я могу создать фрейм данных с именем Tuesday
, который будет 1
, если день = вторник, иначе0
#The day of the week with Monday=0, Sunday=6
df['Tuesday'] = np.where(df.index.dayofweek == 1, 1, 0)
df.head()
С чем я борюсь (в Excel я могу делать со встроенными операторами if else) создание кадра данных с именем occupied
, если время находится между 7:00 и 17:00.Любые советы помогут, спасибо заранее!
df['Occupied'] = np.where(df.index.hour > 7 & df.index.hour < 17, 1, 0)
df.head()
Этот код ошибки с ошибкой типа, что я не уверен, что делать:
TypeError: unsupported operand type(s) for &: 'int' and 'Int64Index'