#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