Как я могу разделить строки в фрейме данных и ранжировать их как новый столбец?

#python #pandas

#питон #панды

Вопрос:

Например, у меня есть набор данных, который выглядит следующим образом:

 d = {'Rank': [1, 2, 3, 4, 5, 6], 'Name': ["apple", "banana", "grape", "orange", "plum", "blackberry"]}
df = pd.DataFrame(data=d)
df.head()
 

И я хочу получить новый столбец «уровень» и на основе столбца ранга я хочу иметь новый ранг, такой как:
[‘High’, ‘Medium’, ‘Low’], так что для моего фрейма данных это будет выглядеть так:

   Rank   Name    New Rank
0  1    apple     High
1  2    banana    High
2  3    grape     Medium
3  4    orange    Medium
4  5     plum     Low
5  6   blackberry Low
 

Я не уверен, как называется этот тип вычислений (?), Поэтому я искал, используя такие ключевые слова, как «ранг» и «разделить новый ранг», и мне не удалось найти нужную справку. (Я видел много .rank() , но это было не то, чего я хотел ..) Как называется этот процесс и как я могу этого добиться?

Заранее благодарю вас!

Комментарии:

1. Пожалуйста, выясните, что требуется, и попытайтесь прочитать о функции ранга

2. @AajKaal Я прочитал функцию rank и, как я упоминал в сообщении, rank — это не та функция, которую я искал.

3. У вас должны быть по крайней мере критерии для Высокого Низкого среднего

Ответ №1:

Я бы использовал cut функцию, которая по сути действует как средство маркировки гистограмм, которому вы присваиваете пользовательские метки:

 df = pandas.DataFrame({'Rank': [1, 2, 3, 4, 5, 6]})
df['New Rank'] = pandas.cut(df['Rank'], bins=3, labels=['High', 'Medium', 'Low'])
 
    Rank New Rank
0     1     High
1     2     High
2     3   Medium
3     4   Medium
4     5      Low
5     6      Low