"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 > Quando o Pandas cria uma visualização em vez de uma cópia?

Quando o Pandas cria uma visualização em vez de uma cópia?

Publicado em 2024-11-06
Navegar:942

When Does Pandas Create a View vs a Copy?

Regras do Pandas para geração de visualização versus geração de cópia

O Pandas emprega regras específicas ao decidir se uma operação de fatia em um DataFrame resulta em uma visualização ou um cópia. Ao compreender essas regras, você pode otimizar a manipulação de dados e evitar comportamentos inesperados.

Começando com operações que sempre geram cópias:

  1. Todas as operações, exceto aquelas que são especificamente projetadas para modificar o DataFrame no local, crie cópias.
  2. Apenas certas operações suportam o parâmetro inplace=True, que permite que modificações ocorram diretamente no DataFrame original.

A seguir, vamos considerar as operações isso pode resultar em visualizações:

  1. Um indexador que define valores, como .loc, .iloc, .iat e .at, opera no local, modificando o DataFrame original sem criar uma cópia.
  2. Um indexador que recupera dados de um objeto de tipo único geralmente cria uma visualização, a menos que o layout de memória subjacente impeça essa otimização.
  3. Por outro lado, um indexador que recupera dados de um objeto de tipo múltiplo sempre cria uma cópia.

Em relação aos seus exemplos:

  • df.query('2
  • df.iloc[3] = 70 e df.ix[1, 'B':'E'] = 222 alteram df porque acessam objetos de tipo único e definem valores no local.
  • df[df.C
  • No entanto, df[df.C

Para modificar valores específicos com base em uma consulta, use a sintaxe loc correta:

df.loc[df.C 

Ao aderir a essas regras, você pode obter uma compreensão clara de quando o Pandas gera visualizações ou cópias, garantindo uma manipulação eficiente de dados em seus scripts Python.

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