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

Puneet Dobhal 30 janeiro 2023
  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