Trocear datos
Aquí tienes un listado de los principales métodos para rebanar y extraer datos en Pandas, junto con ejemplos de uso:
Métodos para Rebanar y Extraer Datos en Pandas
1. Acceso por Etiqueta: loc[]
El método loc[]
se utiliza para acceder a un grupo de filas y columnas por etiquetas o un array booleano. Es muy útil para seleccionar un subconjunto específico de datos.
import pandas as pd
data = {
'Nombre': ['Alice', 'Bob', 'Charlie', 'David', 'Eva'],
'Edad': [24, 27, 22, 32, 29],
'Salario': [50000, 60000, 55000, 70000, 65000]
}
df = pd.DataFrame(data)
# Acceder a una fila por su índice
print(df.loc[1]) # Acceder a la fila con índice 1 (Bob)
# Acceder a varias filas por sus índices
print(df.loc[[0, 2]]) # Acceder a las filas con índices 0 (Alice) y 2 (Charlie)
# Acceder a filas y columnas específicas
print(df.loc[0:2, ['Nombre', 'Salario']]) # Acceder a filas de 0 a 2 y columnas 'Nombre' y 'Salario'
Output:
Nombre Bob
Edad 27
Salario 60000
Name: 1, dtype: object
Nombre Edad Salario
0 Alice 24 50000
2 Charlie 22 55000
Nombre Salario
0 Alice 50000
1 Bob 60000
2 Charlie 55000
2. Acceso por Posición: iloc[]
El método iloc[]
se utiliza para acceder a filas y columnas por índice entero. Es útil cuando no se conoce la etiqueta.
# Acceder a una fila por su posición
print(df.iloc[1]) # Acceder a la segunda fila (índice 1)
# Acceder a varias filas por sus posiciones
print(df.iloc[[0, 2]]) # Acceder a las filas en las posiciones 0 y 2
# Acceder a filas y columnas específicas por posición
print(df.iloc[0:3, [0, 2]]) # Acceder a las filas de 0 a 2 y columnas en posiciones 0 y 2
Output:
Nombre Bob
Edad 27
Salario 60000
Name: 1, dtype: object
Nombre Edad Salario
0 Alice 24 50000
2 Charlie 22 55000
Nombre Salario
0 Alice 50000
1 Bob 60000
2 Charlie 55000
3. Filtrado de Datos
Puedes filtrar un DataFrame
utilizando condiciones booleanas.
# Filtrar filas donde la edad es mayor a 25
print(df[df['Edad'] > 25])
# Filtrar filas donde el salario es igual a 60000
print(df[df['Salario'] == 60000])
# Filtrar múltiples condiciones: Edad > 25 y Salario < 65000
print(df[(df['Edad'] > 25) & (df['Salario'] < 65000)])
Output:
Nombre Edad Salario
1 Bob 27 60000
3 David 32 70000
4 Eva 29 65000
Nombre Edad Salario
1 Bob 27 60000
Nombre Edad Salario
4. query()
El método query()
permite filtrar un DataFrame
usando una cadena de consulta.
# Filtrar usando query
print(df.query('Edad > 25'))
# Filtrar con múltiples condiciones
print(df.query('Edad > 25 and Salario < 65000'))
Output:
Nombre Edad Salario
1 Bob 27 60000
3 David 32 70000
4 Eva 29 65000
Empty DataFrame
Columns: [Nombre, Edad, Salario]
Index: []
5. Selección de Columnas
Puedes seleccionar una o más columnas de un DataFrame
fácilmente.
# Seleccionar una columna
print(df['Nombre'])
# Seleccionar múltiples columnas
print(df[['Nombre', 'Salario']])
Output:
0 Alice
1 Bob
2 Charlie
3 David
4 Eva
Name: Nombre, dtype: object
Nombre Salario
0 Alice 50000
1 Bob 60000
2 Charlie 55000
3 David 70000
4 Eva 65000
6. filter()
El método filter()
se utiliza para seleccionar filas o columnas basadas en criterios específicos.
# Filtrar columnas que contienen 'a'
print(df.filter(like='a', axis=1)) # Filtrar columnas que contienen 'a'
# Filtrar filas usando una condición
print(df.filter(items=[1, 3])) # Filtrar las filas con índices 1 y 3
Output:
Nombre
0 Alice
1 Bob
2 Charlie
3 David
4 Eva
Nombre Edad Salario
1 Bob 27 60000
3 David 32 70000
7. set_index()
Este método se utiliza para establecer una columna como el índice del DataFrame
.
# Establecer la columna 'Nombre' como índice
df_indexed = df.set_index('Nombre')
print(df_indexed)
Output:
Edad Salario
Nombre
Alice 24 50000
Bob 27 60000
Charlie 22 55000
David 32 70000
Eva 29 65000
Resumen
Estos métodos son fundamentales para rebanar y extraer datos de un DataFrame
en Pandas. Proporcionan formas flexibles y potentes para acceder y manipular datos, permitiendo un análisis más profundo y significativo.