En este tutorial, aprenderemos cómo seleccionar una o varias columnas específicas de un marco de datos de pandas por nombre o índice.
Filtrar la columna de pandas por nombre
En pocas palabras, use el método de filtro pandas para seleccionar una o varias columnas de marco de datos específicas por su nombre:
your_df.filter(items = [your_col_name], axis = 1)
Inicializar un marco de datos
Primero seguiremos adelante y crearemos algunos datos de prueba. Siéntase libre de usarlo para seguir los diferentes ejemplos de código.
dates = pd.date_range(start="10/1/23", end = '10/09/23', freq='B') expense = [448, 234, 289, 404, 286, 419] revenue = [2489, 3492, 3053, 3058, 3374, 4500] # initialize your dataframe kpis = pd.DataFrame(dict (dates=dates, revenue = revenue, expense = expense)) kpis['margin'] = kpis['revenue'] - kpis['expense'] print(kpis.head(6))
Esto devolverá el siguiente objeto pandas DataFrame:
2023-10-02 | 2489 | 448 | 2041 |
2023-10-03 | 3492 | 234 | 3258 |
2023-10-04 | 3053 | 289 | 2764 |
2023-10-05 | 3058 | 404 | 2654 |
2023-10-06 | 3374 | 286 | 3088 |
2023-10-09 | 4500 | 419 | 4081 |
Seleccionar una columna por nombre
Como se mencionó, para filtrar una columna específica por nombre, podemos usar el método de filtro de marco de datos:
kpis.filter(items = ['revenue'], axis = 1)
Tenga en cuenta que estamos usando axis=1 para indicar que estamos interesados en buscar un elemento específico en el índice de la columna. Esto devuelve el siguiente DataFrame:
2489 |
3492 |
3053 |
3058 |
3374 |
4500 |
Tenga en cuenta que esto devuelve un objeto DataFrame (a diferencia de cuando se selecciona una sola columna usando loc, iloc o usando la notación de corchetes).
Subconjunto de múltiples columnas
Si estamos interesados en obtener varias columnas, pasaremos una lista al método de filtro:
kpis.filter(items = ['revenue', 'margin'], axis = 1)
Filtrar por nombre de columna que contenga / coincida con una expresión regular
También podemos seleccionar una o varias columnas cuyo nombre coincida con una expresión regular que podamos definir. Veamos dos ejemplos:
Columna cuyo nombre termina con ‘in’:
kpis.filter(regex = 'in€', axis = 1)
Esto devolverá la columna de margen:
2041 |
3258 |
2764 |
2654 |
3088 |
4081 |
Columnas cuyo nombre de encabezado comienza con la letra ‘e’:
kpis.filter(regex = '^e', axis = 1)
Esto devolverá la columna de gastos:
448 |
234 |
289 |
404 |
286 |
419 |
Errores comunes
Cuando utilice el método de filtro para seleccionar una columna de DataFrame específica, asegúrese de especificar el eje del parámetro = 1. Si no lo hace, los pandas buscarán un nombre de elemento específico en su índice de fila de DataFrame y probablemente dará como resultado un DataFrame vacío.