Seleccionar datos de DataFrames con Pandas loc[]
Pandas DataFrame.loc[]
es un indexador de la Biblioteca Python Pandas que se utiliza para seleccionar datos de un DataFrame basándose en etiquetas. De esta manera, puedes extraer filas y columnas específicas de un DataFrame.
- Rápido, seguro, flexible y escalable
- Certificado SSL/DDoS incluido
- Dominio y asesor personal incluidos
Sintaxis de Pandas loc[]
El parámetro que se le pasa a loc[]
es la selección de etiquetas deseada. Por lo demás, la sintaxis es muy simple:
DataFrame.loc[selection]
pythonEn Pandas loc[], la selección se realiza principalmente en función de etiquetas. El parámetro que se pasa puede ser una etiqueta individual, una lista o un rango de etiquetas. Sin embargo, también se pueden utilizar arrays booleanos.
Diferencias entre loc[]
y iloc[]
Mientras que Pandas DataFrame.loc[]
selecciona datos basados en etiquetas, existe otro indexador similar en Pandas, DataFrame.iloc, que se utiliza para seleccionar datos basados en posiciones de enteros.
El siguiente ejemplo ilustra de una forma clara las diferencias entre ambos indexadores. Primero, se crea un DataFrame de Pandas:
import pandas as pd
# Ejemplo de DataFrame
data = {'Nombre': ['Ana', 'Juan', 'Tomás'], 'Edad': [23, 35, 30]}
df = pd.DataFrame(data)
print(df)
pythonEl DataFrame resultante sería el siguiente:
Nombre Edad
0 Ana 23
1 Juan 35
2 Tomás 30
Si quisiéramos extraer a “Ana” del DataFame, se podrían utilizar tanto loc[]
como iloc[]
. El resultado que se obtiene es el mismo, pero siguiendo dos rutas diferentes:
# Con loc por etiqueta
print(df.loc[0, 'Nombre']) # Salida: 'Ana'
# Con iloc por posición
print(df.iloc[0, 0]) # Salida: 'Ana'
pythonCómo utilizar Pandas DataFrame.loc[]
Pandas loc[]
sirve para extraer subconjuntos de un DataFrame, ya sea una o varias filas o columnas. El indexador loc[]
puede tener diferentes aplicaciones de uso.
Selección de una fila individual
A continuación, crearemos un DataFrame de ejemplo usando el siguiente código:
import pandas as pd
data = {
'Nombre': ['Ana', 'Juan', 'Tomás'],
'Edad': [23, 35, 30],
'Ciudad': ['León', 'Madrid', 'Salamanca']
}
df = pd.DataFrame(data)
print(df)
pythonEl DataFrame resultante sería el siguiente:
Nombre Edad Ciudad
0 Ana 23 León
1 Juan 35 Madrid
2 Tomás 30 Salamanca
Para seleccionar los datos de la fila con el índice 1 (que corresponde a Juan), se puede utilizar el indexador Pandas loc[]
:
juan_data = df.loc[1]
print(juan_data)
pythonEl resultado sería el siguiente:
Nombre Juan
Edad 35
Ciudad Madrid
Name: 1, dtype: object
Selección de varias columnas
También puedes usar DataFrame.loc[]
para seleccionar un subconjunto de columnas. El código selecciona las columnas “Nombre” y “Ciudad” para todas las filas:
name_stadt = df.loc[:, ['Nombre', 'Ciudad']]
print(name_stadt)
pythonComo resultado, obtienes un subconjunto del DataFrame original:
Nombre Ciudad
0 Ana León
1 Juan Madrid
2 Tomás Salamanca
Selección basada en una condición
Con Pandas loc[]
también es posible seleccionar filas basadas en una condición. En este caso, se utilizan operadores de comparación booleanos. En el siguiente código, por ejemplo, se filtrarán todas las personas que tienen más de 25 años:
older_than_25 = df.loc[df['Edad'] > 25]
print(older_than_25)
pythonNombre Edad Ciudad
1 Juan 35 Madrid
2 Tomás 30 Salamanca