gpt4 book ai didi

python - 按组中的位置然后按该组对数据框进行排序

转载 作者:太空宇宙 更新时间:2023-11-03 13:34:45 24 4
gpt4 key购买 nike

考虑数据框 df

df = pd.DataFrame(dict(
A=list('aaaaabbbbccc'),
B=range(12)
))

print(df)

A B
0 a 0
1 a 1
2 a 2
3 a 3
4 a 4
5 b 5
6 b 6
7 b 7
8 b 8
9 c 9
10 c 10
11 c 11

我想对数据框进行排序,如果我按 'A' 列分组,我会从每个组中提取第一个位置,然后循环返回并从每个组中获取第二个位置(如果有的话)其余的。依此类推。

我希望结果看起来像这样

    A   B
0 a 0
5 b 5
9 c 9
1 a 1
6 b 6
10 c 10
2 a 2
7 b 7
11 c 11
3 a 3
8 b 8
4 a 4

最佳答案

您可以使用 cumcount首先是 groups 中的计数值,然后是 sort_valuesreindex通过 系列 :

cum = df.groupby('A')['B'].cumcount().sort_values()
print (cum)
0 0
5 0
9 0
1 1
6 1
10 1
2 2
7 2
11 2
3 3
8 3
4 4
dtype: int64

print (df.reindex(cum.index))
A B
0 a 0
5 b 5
9 c 9
1 a 1
6 b 6
10 c 10
2 a 2
7 b 7
11 c 11
3 a 3
8 b 8
4 a 4

关于python - 按组中的位置然后按该组对数据框进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41547592/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com