给定近似数据框
df = pd.DataFrame({
'Name': ['Max', 'Stefan', 'John', 'Kate', 'Walter', 'Karin', 'Julia', 'Ben', 'Spencer'],
'Balance': [0.12, 0.03, 0.12, 0.12, 0.12, 0.03, 0.03, 0.06, 0.03]})
Name Balance
0 Max 0.12
1 Stefan 0.03
2 John 0.12
3 Kate 0.12
4 Walter 0.12
5 Karin 0.03
6 Julia 0.03
7 Ben 0.06
8 Spencer 0.03
排序的条件是按3行创建迷你组。这些行将是:第一个(列的最大值),第二个(小于最大值且大于最小值的值),第三个(列的最小值)。但细微差别是,这个值(第二个)可以等于最大值或等于最小值,或者只是max〉average〉min。此外,重要的是要注意,所有值都可以相等。因此可能有四种不同的结果。
我需要以这样的方式对这个Dataframe进行排序:
Name Balance
0 Max 0.12
1 Ben 0.06
2 Julia 0.03
3 Kate 0.12
4 Walter 0.12
5 Karin 0.03
6 John 0.12
7 Stefan 0.03
8 Spencer 0.03
4条答案
按热度按时间eh57zj3b1#
您可以先按余额排序,为订单创建一个额外的列,并使用它来重新排序 Dataframe :
结果:
0md85ypi2#
你的问题中有太多的细微差别,无法正确回答,但这可能会给予你类似的东西:
输出:
piv4azn73#
该算法考虑第一个3行组([0,1,2])然后对内部数据进行排序,因此第二个3行组([3,4,5])并对数据进行排序,等等。
升序设置为
False
。可以使用
N
参数进行泛化。建议稿
结果
zbdgwd5y4#
试试这个: