Data Wrangling

Acceso Eficiente a Celdas de un DataFrame Pandas

Spread the love

Los DataFrames de Pandas son esenciales para la manipulación de datos en Python. El acceso eficiente a valores de celdas individuales es una tarea común. Este artículo explora varios métodos para recuperar estos valores, destacando sus fortalezas y debilidades.

Tabla de contenido

Indexación basada en enteros: iloc

.iloc proporciona una indexación basada en enteros versátil. Utiliza indexación basada en cero para filas y columnas.


import pandas as pd

data = {'col1': [10, 20, 30], 'col2': [40, 50, 60]}
df = pd.DataFrame(data)

# Accede al valor en la fila 1, columna 0 (segunda fila, primera columna)
value = df.iloc[1, 0]
print(f"Valor usando iloc: {value}")  # Salida: 20

# Accede al valor en la fila 0, columna 1 (primera fila, segunda columna)
value = df.iloc[0, 1]
print(f"Valor usando iloc: {value}")  # Salida: 40

.iloc es eficiente, especialmente para DataFrames grandes, y ofrece un control preciso sobre la selección de celdas usando índices numéricos.

iat y at para acceso a una sola celda

.iat y .at ofrecen un acceso conciso a una sola celda. .iat usa indexación basada en enteros, mientras que .at usa indexación basada en etiquetas (nombres de columna).


import pandas as pd

data = {'col1': [10, 20, 30], 'col2': [40, 50, 60]}
df = pd.DataFrame(data)

# Obtiene el valor en la fila 1, columna 0 usando iat
value = df.iat[1, 0]
print(f"Valor usando iat: {value}")  # Salida: 20

# Obtiene el valor en la fila 0, columna 'col2' usando at
value = df.at[0, 'col2']
print(f"Valor usando at: {value}")  # Salida: 40

Estos métodos son más rápidos para el acceso a una sola celda que .iloc porque devuelven un valor escalar, no una Serie o DataFrame.

Acceso a través de columna e índice: df['col_name'].iloc[]

Este enfoque selecciona una columna y luego accede a una fila específica dentro del array NumPy subyacente de esa columna. Es menos flexible y eficiente que los métodos anteriores.


import pandas as pd

data = {'col1': [10, 20, 30], 'col2': [40, 50, 60]}
df = pd.DataFrame(data)

# Accede al valor en la fila 1 de 'col1'
value = df['col1'].iloc[1] #Más eficiente que .values[]
print(f"Valor usando iloc en columna: {value}")  # Salida: 20

Si bien esto puede parecer conveniente, usar .iloc directamente en la selección de columna generalmente se prefiere por eficiencia y claridad.

En resumen, .iloc, .iat y .at proporcionan maneras eficientes y legibles de acceder a las celdas de un DataFrame. El enfoque basado en columnas usando .iloc en la columna seleccionada generalmente se prefiere sobre el uso de .values[]. Elija el método que mejor se adapte a sus necesidades y estilo de codificación.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *