"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como posso manter outras colunas em um DataFrame do Pandas durante uma operação groupby?

Como posso manter outras colunas em um DataFrame do Pandas durante uma operação groupby?

Publicado em 2024-11-08
Navegar:239

How can I maintain other columns in a Pandas DataFrame during a groupby operation?

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.

Tutorial mais recente Mais>

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