Mantendo outras colunas durante operações Groupby
Ao executar uma operação groupby em um dataframe do pandas, muitas vezes é necessário reter colunas que não são envolvidos no processo de agrupamento ou agregação. Por padrão, essas outras colunas são eliminadas quando a operação é concluída. Isso pode ser problemático se as colunas retidas contiverem informações valiosas.
Considere o seguinte quadro de dados:
item diff otherstuff 0 1 2 1 1 1 1 2 2 1 3 7 3 2 -1 0 4 2 1 3 5 2 4 9 6 2 -6 2 7 3 0 0 8 3 2 9
Se agrupássemos o quadro de dados pela coluna "item" e encontrássemos o valor mínimo da coluna "diff", o quadro de dados resultante ficaria assim:
item diff 0 1 1 1 2 -6 2 3 0
Observe que a coluna "outras coisas" foi eliminada. Para reter esta coluna, podemos usar o método idxmin() para obter os índices dos elementos de diferença mínima e, em seguida, selecionar aqueles:
>>> df.loc[df.groupby("item")["diff"].idxmin()] item diff otherstuff 1 1 1 2 6 2 -6 2 7 3 0 0 [3 rows x 3 columns]
Outro método é classificar o quadro de dados pela coluna "diff" e, em seguida, pegar o primeiro elemento em cada grupo de itens:
>>> df.sort_values("diff").groupby("item", as_index=False).first() item diff otherstuff 0 1 1 2 1 2 -6 2 2 3 0 0 [3 rows x 3 columns]
Ambos os métodos produzirão o resultado desejado, mantendo a coluna "outras coisas". Tenha em mente que os índices resultantes podem ser diferentes, mesmo que o conteúdo da linha seja o mesmo.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3