У меня DateTimeIndex, состоящий из 15-минутных интервалов.
У меня также есть та же функция, написанная двумя способами, которую я хочу применить ко всему фрейму данных.Смысл функции в том, чтобы узнать, является ли конкретный день рабочим днем или нет.
Вот они:
def weekend(datum):
if (datum.weekday() == 5) or (datum.weekday() == 6):
return "Weekend"
else:
return "Working day"
# written with being fed the DateTimeIndex in mind
def weekendfromnumber(number):
if (number == 5) or (number == 6):
return "Weekend"
else:
return "Working day"
# written with being fed the integer of the intermediate columng weekday in mind
Я хотел применить первую функцию, напрямую передав ее DateTimeIndexкак в:
df15['Type of day'] = df15.index.apply(weekend)
но я получаю ошибку:
AttributeError: 'DatetimeIndex' object has no attribute 'apply'
Если я использую вторую функцию, как в:
df15['Type of day'] = df15.weekday.apply(weekendfromnumber)
Я получаю эффект, которыйЯ хочу, но за счет необходимости создать промежуточный столбец с именем дня недели с:
df15['weekday'] = df15.index.weekday
Поскольку я не хочу промежуточный столбец, я подумал, что делать что-то вроде:
df15['Type of day'] = df15.index.weekday.apply(weekendfromnumber)
будет работать, но вместо этого я получаю ошибку
AttributeError: 'numpy.ndarray' object has no attribute 'apply'
Итак, главный вопрос:
Как использовать данные, которые уже есть в DateTimeIndex, и передать их впользовательская функция, использующая apply ()?