"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 substituir valores específicos em uma coluna Pandas DataFrame com base nas condições?

Como substituir valores específicos em uma coluna Pandas DataFrame com base nas condições?

Publicado em 2024-11-06
Navegar:594

How to Replace Specific Values in a Pandas DataFrame Column Based on Conditions?

Pandas DataFrame: substituição de valor direcionado com base em condições

No Pandas, muitas vezes é necessário modificar valores específicos dentro de um DataFrame com base em determinados critérios . Embora uma abordagem comum seja usar loc para selecionar linhas, é crucial entender como direcionar com precisão uma coluna específica para modificação de valor.

Considere o seguinte DataFrame, onde desejamos substituir valores na 'Primeira Temporada' coluna que excede 1990 com o número inteiro 1:

                 Team  First Season  Total Games
0      Dallas Cowboys          1960          894
1       Chicago Bears          1920         1357
2   Green Bay Packers          1921         1339
3      Miami Dolphins          1966          792
4    Baltimore Ravens          1996          326
5  San Franciso 49ers          1950         1003

Uma tentativa inicial usando apenas a função loc resultou na substituição de todos os valores nas linhas selecionadas, em vez de apenas na coluna de destino. Para corrigir isso, precisamos especificar explicitamente a coluna 'Primeira Temporada' como o segundo argumento para loc:

df.loc[df['First Season'] > 1990, 'First Season'] = 1

Essa abordagem direcionada garante que apenas os valores na coluna 'Primeira temporada' que satisfaçam a condição sejam substituídos por 1, deixando as outras colunas inalteradas.

                 Team  First Season  Total Games
0      Dallas Cowboys          1960          894
1       Chicago Bears          1920         1357
2   Green Bay Packers          1921         1339
3      Miami Dolphins          1966          792
4    Baltimore Ravens             1          326
5  San Franciso 49ers          1950         1003

Alternativamente, se o resultado desejado for um indicador booleano, você pode empregar a condição para criar uma série booleana e convertê-la em números inteiros, onde True e False se traduzem em 1 e 0, respectivamente :

df['First Season'] = (df['First Season'] > 1990).astype(int)

Esta abordagem produz um DataFrame com valores atualizados:

                 Team  First Season  Total Games
0      Dallas Cowboys             0          894
1       Chicago Bears             0         1357
2   Green Bay Packers             0         1339
3      Miami Dolphins             0          792
4    Baltimore Ravens             1          326
5  San Franciso 49ers             0         1003
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