我有一个熊猫数据框,比如:
ID Group Rank include
1 Group1 1 0
2 Group1 2 1
3 Group1 3 0
4 Group1 4 1
5 Group2 1 0
6 Group2 2 0
7 Group2 3 1
8 Group2 4 1
9 Group2 5 1
我要选择满足以下条件的子集: -组中最多3行 -包含包含=1的所有行(每组不超过3个) -最小化每个组的总排名
基本上,我想从每个组中选择前“N”个记录,但是include=1的行的优先级高于其他行。你知道吗
输出数据帧:
ID Group Rank include
1 Group1 1 0
2 Group1 2 1
4 Group1 4 1
7 Group2 3 1
8 Group2 4 1
9 Group2 5 1
我试过几种方法,但都不管用,现在我被卡住了。
请帮帮我!你知道吗
首先根据您的条件对数据帧进行排序:
然后groupby
Group
并获得每组的前3行。另外,添加一个sort_values
,使最终的数据帧在Group
上排序,然后在Rank
上排序,如下所示:输出:
相关问题 更多 >
编程相关推荐