Eu tenho o seguintepandas.DataFrame
match_id court
0 50311513 1
1 50313011 2
2 50313009 2
3 50317691 1
4 50315247 2
5 50318597 1
6 50318877 1
7 50318983 1
8 50318831 1
9 50318595 1
Como você pode ver, há um total de 2
cursos. Quero agrupar cada "slot". Portanto, o primeiro df agrupado deve conter match 50311513
e 50313011
. O segundo slot deve conter 50313009
e 50317691
. Após o terceiro slot, o df agrupado é basicamente uma única linha.
Como posso saber pandas.groupby()
que apenas uma partida pode ser disputada no campo?
Obrigado
Editar
Dados de entrada diferentes:
match_id court group
0 46768193 1 0
1 46768193 1 1
2 46768187 2 0
3 46768187 2 1
4 46767821 3 0
IIUC, você pode formar dois grupos sucessivos com
cumcount
:Saída:
Intermediários:
generalização
Se precisar lidar com mais grupos, você pode usar uma função personalizada (iterativa) com um conjunto para controlar os itens já vistos. Se o conjunto de itens vistos anteriormente já contém o item atual, inicie um novo grupo:
Exemplo: