Cómo establecer el valor de una celda en particular en pandas DataFrame usando el índice

  1. Establecer el valor para una celda en particular en pandas DataFrame usando el método pandas.dataframe.at
  2. Establezca el valor para una celda en particular en pandas DataFrame usando el método Dataframe.set_value()
  3. Establezca el valor para una celda particular en pandas DataFrame usando el método Dataframe.loc

Pandas es un paquete de python centrado en datos que hace que el análisis de datos en python sea fácil y coherente. En este artículo, analizaremos diferentes métodos para acceder y establecer valores para una celda en particular en la estructura de datos pandas DataFrame utilizando un índice.

Establecer el valor para una celda en particular en pandas DataFrame usando el método pandas.dataframe.at

El método pandas.dataframe.at se usa principalmente cuando necesitamos establecer un valor único en un 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))

Producción:

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 puede observar, al acceder a la celda hemos especificado el índice y la columna como .at[0, 'Col1'] entre los cuales el primer parámetro es el índice, y el segundo es la columna.

Si abandona la columna y solo especifica el índice, se modificarán todos los valores para ese índice.

Establezca el valor para una celda en particular en pandas DataFrame usando el método Dataframe.set_value()

Otra alternativa es el método Dataframe.set_value(). Esto es muy similar al método anterior y accede a un valor a la vez, pero con una ligera diferencia en la sintaxis.

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))

Producción:

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

Establezca el valor para una celda particular en pandas DataFrame usando el método Dataframe.loc

Otro método viable para establecer una celda particular con una ligera diferencia en la sintaxis es el 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))

Producción:

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 los métodos mencionados anteriormente en el artículo son formas convenientes de modificar o establecer una celda particular en pandas DataFrame, con pequeñas diferencias en sintaxis y especificación.

Artículo relacionado - Pandas DataFrame

  • Cómo convertir el índice de un Dataframe de Pandas en una columna
  • Convertir Pandas DataFrame en un diccionario