- #Посмотрим, есть ли случаи, когда refundable_support или nonrefundable_support не нулевые, а budget=0
- err_budget = data.query('(budget < refundable_support) or (budget < nonrefundable_support)')
- len(err_budget)
- #Т.к. бюджет не м.б. = 0, если поддержка не равна 0, то можно попробовать заполнить значения в #столбце "бюджет" (где бюджет =0, а одна из поддержек не равно 0) по формуле:
- #"(возврат.поддержка + невозврат.поддержка) / на медианное значение доли поддержки в бюджете".
- 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
data.loc
From Chocolate Cat, 2 Months ago, written in Plain Text, viewed 65 times.
This paste is a reply to data.loc from Social Motmot
- view diff
URL http://codebin.org/view/3f0a954e
Embed
Download Paste or View Raw
— Expand Paste to full width of browser