考虑一个包含三列的数据帧:group_ID
、item_ID
和value
。假设我们总共有10个itemIDs
。
我需要根据value
对每个item_ID
(1到10)中的每个group_ID
进行排序,然后查看组之间的平均排序(和其他统计数据)(例如,组之间值最高的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
有很多不同的参数可以传递给^{} ;在执行
groupby
之后,您可以使用rank("dense", ascending=False)
来获得所需的结果:但是请注意,如果您没有使用全局排名方案,那么找出组之间的平均排名并不是很有意义——除非组中有重复的值(因此您有重复的排名值),否则您所做的只是测量组中有多少元素。
相关问题 更多 >
编程相关推荐