Я создал этот фрейм данных. Я рассчитал разрыв, который искал, но проблема в том, что некоторые квартиры имеют одинаковую цену, и я получаю разницу в цене 0. Как я могу заменить значение 0 на разницу с последним меньшим цена той же группы.
например:
neighboorhood:a, bed:1, bath:1, price:5
neighboorhood:a, bed:1, bath:1, price:5
neighboorhood:a, bed:1, bath:1, price:3
neighboorhood:a, bed:1, bath:1, price:2
Я получаю разницу в цене 0,2,1, нан, и я ищу 2,2,1, нан ( кратко я не хочу сравнивать 2 квартиры с одинаковой ценой)
Заранее спасибо и хорошего дня.
data=[
[1,'a',1,1,5],[2,'a',1,1,5],[3,'a',1,1,4],[4,'a',1,1,2],[5,'b',1,2,6],[6,'b',1,2,6],[7,'b',1,2,3]
]
df = pd.DataFrame(data, columns = ['id','neighborhoodname', 'beds', 'baths', 'price'])
df['difference_price'] = ( df.dropna()
.sort_values('price',ascending=False)
.groupby(['city','beds','baths'])['price'].diff(-1) )