Como definir valor para uma célula específica em Pandas DataFrame usando índice

Puneet Dobhal 30 janeiro 2023 1 novembro 2020
  1. Definir valor para uma célula específica em Pandas DataFrame utilizando pandas.dataframe.at Método
  2. Defina o valor para uma célula particular no Pandas DataFrame usando o método Dataframe.set_value()
  3. Defina o valor para uma célula particular no Pandas DataFrame usando o método Dataframe.loc
Como definir valor para uma célula específica em Pandas DataFrame usando índice

Pandas é um pacote python centrado em dados que torna a análise de dados em python fácil e coerente. Neste artigo, vamos analisar diferentes métodos de acesso e definição de valores para uma célula específica em pandas DataFrame estrutura de dados utilizando um índice.

Definir valor para uma célula específica em Pandas DataFrame utilizando pandas.dataframe.at Método

O método pandas.dataframe.at é utilizado principalmente quando precisamos definir um único valor em um DataFrame.

import pandas as pd

sample_df = pd.DataFrame([
                [10, 20, 30],
                [11, 21, 31],
                [15, 25, 35]],
                index=[0, 1, 2],
                columns=['Col1', 'Col2', 'Col3'])
                  
print"\nOriginal DataFrame"
print(pd.DataFrame(sample_df))
sample_df.at[0, 'Col1'] = 99
sample_df.at[1, 'Col2'] = 99
sample_df.at[2, 'Col3'] = 99

print"\nModified DataFrame"
print(pd.DataFrame(sample_df))

Resultado:

Original DataFrame
   Col1  Col2  Col3
0    10    20    30
1    11    21    31
2    15    25    35

Modified DataFrame
   Col1  Col2  Col3
0    99    20    30
1    11    99    31
2    15    25    99

Como você pode notar, ao acessar a célula, especificamos índice e coluna como .at[0, 'Col1'] entre os quais o primeiro parâmetro é o índice, e o segundo é a coluna.

Se você deixar a coluna e apenas especificar o índice, todos os valores para esse índice serão modificados.

Defina o valor para uma célula particular no Pandas DataFrame usando o método Dataframe.set_value()

Outra alternativa é o método Dataframe.set_value(). Este é muito semelhante ao método anterior e acessa um valor de cada vez, mas com uma leve diferença de sintaxe.

import pandas as pd

sample_df = pd.DataFrame([
                [10, 20, 30],
                [11, 21, 31],
                [15, 25, 35]],
                index=[0, 1, 2],
                columns=['Col1', 'Col2', 'Col3'])
                  
print"\nOriginal DataFrame"
print(pd.DataFrame(sample_df))

sample_df.set_value(0, 'Col1',99)
sample_df.set_value(1, 'Col2',99)
sample_df.set_value(2, 'Col3',99)

print"\nModified DataFrame"
print(pd.DataFrame(sample_df))

Resultado:

Original DataFrame
   Col1  Col2  Col3
0    10    20    30
1    11    21    31
2    15    25    35

Modified DataFrame
   Col1  Col2  Col3
0    99    20    30
1    11    99    31
2    15    25    99

Defina o valor para uma célula particular no Pandas DataFrame usando o método Dataframe.loc

Outro método viável para definir uma determinada célula com uma leve diferença de sintaxe é o método dataframe.loc.

import pandas as pd

sample_df = pd.DataFrame([[10, 20, 30],
                [11, 21, 31],
                [15, 25, 35]],
                index=[0, 1, 2],
                columns=['Col1', 'Col2', 'Col3'])
                  
print"\nOriginal DataFrame"
print(pd.DataFrame(sample_df))

sample_df.loc[0, 'Col3'] = 99
sample_df.loc[1, 'Col2'] = 99
sample_df.loc[2, 'Col1'] = 99

print"\nModified DataFrame"
print(pd.DataFrame(sample_df))

Resultado:

Original DataFrame
   Col1  Col2  Col3
0    10    20    30
1    11    21    31
2    15    25    35

Modified DataFrame
   Col1  Col2  Col3
0    10    20    99
1    11    99    31
2    99    25    35

Todos os métodos mencionados acima no artigo são formas convenientes de modificar ou definir uma célula em particular em pandas DataFrame, com pequenas diferenças de sintaxe e especificação.

Artigo relacionado - Pandas DataFrame