У меня есть следующий фрейм данных:
import pandas as pd
df = pd.DataFrame(
{
'id': [1, 1, 1, 1, 2, 2,2, 2, 3, 3, 3, 3],
'name': ['A', 'B', 'C', 'D','A', 'B','C', 'D', 'A', 'B','C', 'D'],
'Value': [1, 2, 3, 4, 5, 6, 0, 2, 4, 6, 3, 5]
},
columns=['name','id','Value'])`
Я могу отсортировать данные, используя идентификатор и значение, как показано ниже:
df.sort_values(['id','Value'],ascending = [True,False])
Таблица, которую я распечатаю, будет выглядеть следующим образом:
name id Value
D 1 4
C 1 3
B 1 2
A 1 1
B 2 6
A 2 5
D 2 2
C 2 0
B 3 6
D 3 5
A 3 4
C 3 3
Я хотел бы создать 4 новых столбца (Rank1, Rank2, Rank3, Rank4) , если элемент в столбце name является наибольшим значением,столбцу Rank1 будет присвоено значение 1 else 0 .если элемент в столбце name является вторым по величине значением, столбцу Rank2 будет присвоено значение 1 else 0 .То же самое для Ранга 3 и Ранга 4.
Как я могу это сделать?
Спасибо.
Zep