#python #pandas #dataframe #numpy #str-replace
Вопрос:
У меня есть эти данные в pandas, и как я могу преобразовать «Адрес» в число в соответствии со значением цены?
Area Room Parking Address Price 0 63 1 1 Shahran 1850000000 1 60 1 1 Chids 1850000000 2 79 2 1 Pardis 550000000 3 95 2 1 Shahrake 902500000 4 123 2 1 Shahrake 7000000000
Комментарии:
1. И какой это будет номер? Ранг, основанный на цене?
2. Пожалуйста, опубликуйте свой ожидаемый результат.
Ответ №1:
IIUC, вы можете rank
рассчитать цены по средней цене за группу адресов:
df['rank'] = df.groupby('Address')['Price'].transform('mean').rank()
выход:
Area Room Parking Address Price rank 0 63 1 1 Shahran 1850000000 2.5 1 60 1 1 Chids 1850000000 2.5 2 79 2 1 Pardis 550000000 1.0 3 95 2 1 Shahrake 902500000 4.5 4 123 2 1 Shahrake 7000000000 4.5
Или, если вы предпочитаете плотные значения между группами:
df['rank'] = df.groupby('Address')['Price'].transform('mean').rank(method='dense')
выход:
Area Room Parking Address Price rank 0 63 1 1 Shahran 1850000000 2 1 60 1 1 Chids 1850000000 2 2 79 2 1 Pardis 550000000 1 3 95 2 1 Shahrake 902500000 3 4 123 2 1 Shahrake 7000000000 3
ПРИМЕЧАНИЕ. используйте ascending=False
параметр, чтобы сначала ранжировать самую высокую цену
Комментарии:
1. Большое спасибо