Как заменить строку на int в pandas?

#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. Большое спасибо