Я применяю лямбда-функцию к фрейму данных и хотел бы добавить новый столбец к этому фрейму данных, а при применении лямбда-функции я передаю сам фрейм данных в качестве аргумента функции.
набор данных
SL. No. Class Age time ... demand from_ind to_ind Fare
0 1 0 77.2 39 ... 1 5 4 11854.27
1 2 0 45.3 34 ... 1 2 4 14968.50
2 3 0 70.9 36 ... 1 1 4 5859.32
3 4 0 35.1 31 ... 1 7 4 2774.19
4 5 0 41.8 33 ... 1 7 4 3833.66
Мой код
def categorical_fare_mean(data,col,cat):
print('entered once')
data = data[data[col]==cat]['Fare']
fare_mean = data['Fare'].mean()
return fare_mean
dataset['weekday_encoded'] = dataset.apply(lambda x: categorical_fare_mean(dataset,x['weekday'],0) ,axis = 1)
Это дает мне ошибку KeyError: (0, 'occurred at index 0')
Я не уверен, где я иду не так. Может ли кто-нибудь помочь мне с этим.
Я также пытался с
dataset['demand_encoded'] = dataset.apply(lambda x: categorical_fare_mean(dataset,x['demand'],1) ,axis = 1)
Я получил ошибку KeyError: (1, 'occurred at index 0')
Спасибо