#python #pandas #dataframe
Вопрос:
У меня есть пара столбцов "car_model"
, "year"
которые мне нужно отправить в функцию как a tuple
, и она вернет мне цену(плавающую).
Как выполнить итерацию по строкам фрейма данных, отправить значения "car_model"
и "year"
в функцию и добавить возвращенное значение в новый столбец "price"
?
Я думал о:
model_year = CAR[["car_model", "year"]]
for x in model_year.to_numpy():
model_year_tuple = tuple(x)
price = calculate_price(model_year_tuple)
//how to add to the column? the line below will always use the last calculated price
CAR['price'] = price
Ответ №1:
Мы можем сделать
model_year['out'] = model_year.agg(tuple,1).map(calculate_price)
Ответ №2:
Попробуй apply
:
CAR['price'] = model_year.apply(lambda x: calculate_price(tuple(x)), axis=1)
Или понимание списка:
CAR['price'] = [calculate_price(x) for x in zip(CAR['car_model'], CAR['year'])]
Тем не менее, вам следует попробовать переписать свою calculate_price
функцию так, чтобы она принимала массив numpy вместо кортежей ванильного питона.
Ответ №3:
это должно сработать
df['price'] = df.apply(lambda x: price((x['car_model'],x['year'])))