5
考慮具有三列的數據幀:group_ID
,item_ID
和value
。假設我們共有10 itemIDs
。Pandas中的每個組的排名順序
我需要排名各item_ID
(1〜10)內每個group_ID
基於value
,然後看到平均等級(和其它數據)跨羣體(如各組與最高值的ID會得分接近1)。我如何在 熊貓中做到這一點?
This answer與qcut
做的事情非常接近,但不完全相同。
的數據例如將如下所示:
group_ID item_ID value
0 0S00A1HZEy AB 10
1 0S00A1HZEy AY 4
2 0S00A1HZEy AC 35
3 0S03jpFRaC AY 90
4 0S03jpFRaC A5 3
5 0S03jpFRaC A3 10
6 0S03jpFRaC A2 8
7 0S03jpFRaC A4 9
8 0S03jpFRaC A6 2
9 0S03jpFRaC AX 0
這將導致:
group_ID item_ID rank
0 0S00A1HZEy AB 2
1 0S00A1HZEy AY 3
2 0S00A1HZEy AC 1
3 0S03jpFRaC AY 1
4 0S03jpFRaC A5 5
5 0S03jpFRaC A3 2
6 0S03jpFRaC A2 4
7 0S03jpFRaC A4 3
8 0S03jpFRaC A6 6
9 0S03jpFRaC AX 7
您可以使用'scipy.stats'中的'rankdata'函數對您的數據進行排序。然後,它將成爲將這個函數正確分組並應用於數據框的練習。 – Olaf
謝謝@DSM我正在編輯帖子。我認爲最新的排名是正確的。 –
是的! @DSM對不起,我剛剛糾正了這一點。謝謝。 –