У меня есть датафрейм с параметрами объекта недвижимости («Комнаты», «Площадь» и т. Д.). Я хочу заменить строки, в которых параметр «Комнаты» равен 0, на соответствующее количество комнат из фрейма данных («Комнаты» - «средняя площадь»), который я создал из того же начального набора данных.
Я бы использовал метод .replace, но проблема в том, что фактические значения Square для 0 строк комнаты не совсем соответствуют средним значениям.
Я новичок в pandas, поэтому все решения, которые я бы попробовал, основаны на помещении значений столбцов в списки python и использовании циклов, что является кошмаром. Все другие подобные темы, которые я видел в stackoverflow, хороши только для точных совпадений.
Это фрагмент и часть исходного кадра данных, в котором я хочу изменить значения («Комнаты»):
data.loc [data ['Rooms'] == 0] [['Rooms', 'Square']]
Rooms Square
1397 0.0 138.427694
1981 0.0 212.932361
2269 0.0 41.790881
3911 0.0 49.483501
4366 0.0 81.491446
4853 0.0 2.377248
6149 0.0 38.697117
8834 0.0 87.762616
Это код, который создает кадр данных «Комнаты» - «средняя площадь»:
mean_square = data.loc [(data ['Rooms'] <6) & (data ['Rooms']> 0)]. Groupby ('Rooms', as_index = False) ['Square']. Mean ( )
Это результат:
Rooms Square
0 1.0 41.323277
1 2.0 56.788214
2 3.0 76.903234
3 4.0 98.377544
4 5.0 122.614941
Например, для позиции 1397 я ожидаю, что 0,0 изменилось на 5,0 (~ 138 кв. М. Ближе всего к ~ 122 кв. В среднем для 4 комнат).