- import numpy as np
- budget_less_5mln = data.query('budget < 5000000')
- len(budget_less_5mln)
- #Есть 17 строк где бюджет сильно меньше гос.поддержки и доля гос.поддержки в бюджете будет там слишком большая. Поэтому рассчитаем медиану доли гос.подержки без этих значений
- budget_more_5mln = data.query('budget > 5000000')
- len(budget_more_5mln)
- dolyaya = (((budget_more_5mln['refundable_support'] + budget_more_5mln['nonrefundable_support']) / budget_more_5mln['budget']) * 100).apply(np.ceil)
- med = dolyaya.median()
- med
- data.loc[(data['budget'] < data['refundable_support']) | (data['budget'] < data['nonrefundable_support']), 'budget'] = (data['refundable_support'] + data['nonrefundable_support']) / med
- #И заменим в этих 17 строках значение бюджета (где budget < 5000000) так же по формуле "(возврат.поддержка + невозврат.поддержка) * на медианное значение доли поддержки в бюджете"
- data.loc[(data['budget'] < 5000000) & (data['budget'].notna()), 'budget'] = (data['refundable_support'] + data['nonrefundable_support']) / med