Pandas: Obtener el nombre de las columnas y filas en Pandas

Publicado el 07 diciembre 2020 por Daniel Rodríguez @analyticslane

En esta pequeña entrada vamos a ver cómo se pueden obtener el nombre de las columnas y filas en Pandas. Una tarea que parece trivial, pero es importante cuando se importan datos desde archivos externos.

Creación de un DataFrame

Para obtener el nombre de las columnas y filas en un DataFrame Pandas es necesario disponer de una en memoria. En esta ocasión crearemos manualmente el DataFrame partiendo de un diccionario y agregando a este una lista con los índices.

import pandas as pd

users = {'first_name': ['Montgomery', 'Dagmar', 'Reeba', 'Shalom', 'Broddy', 'Aurelia'],
         'last_name': ['Humes', 'Elstow', 'Wattisham', 'Alen', 'Keningham', 'Brechin'],
         'age': [27, 41, 29, 29, 21, 33],
         'gender': ['Male', 'Female', 'Female', 'Male', 'Male', 'Female']}
df = pd.DataFrame(users, index=['a', 'b', 'c' , 'd' , 'e' , 'f'])
   first_name  last_name  age  gender
a  Montgomery      Humes   27    Male
b      Dagmar     Elstow   41  Female
c       Reeba  Wattisham   29  Female
d      Shalom       Alen   29    Male
e      Broddy  Keningham   21    Male
f     Aurelia    Brechin   33  Female

Tal como se puede ver en el ejemplo, los índices de un DataFrame Pandas pueden también pueden ser de tipo texto. No siendo obligatoriamente valores numéricos correlativos.

Obtener el nombre de las columnas de DataFrame

Ahora para obtener el nombre de las columnas de un DataFrame se puede obtener mediante la propiedad columns.values. Una propiedad que tienen todos los objetos de este tipo. Así se puede cargar en una variable utilizando el código.

columns_names = df.columns.values
array(['first_name', 'last_name', 'age', 'gender'], dtype=object)

Nótese que la variable columns_names es un array de NumPy. Si se desea tener los nombres en una lista el objeto se puede convertir fácilmente mediante el siguiente código.

columns_names_list = list(columns_names)
['first_name', 'last_name', 'age', 'gender']

También es posible acceder al nombre de una columna en concreto. Dado que las columnas son array de NumPy, solamente se debe indicar entre corchetes la posición de la columna.

df.columns.values[1]
'last_name'

Obtener el nombre de las filas del DataFrame

Para obtener el nombre de las filas el proceso es análogo al anterior. Pero utilizando la propiedad index.values que también se encuentra en todos los DataFrames de Pandas. De este modo se puede obtener un array de NumPy con los valores de las filas mediante el comando.

row_names = df.index.values
array(['a', 'b', 'c', 'd', 'e', 'f'], dtype=object)

Al igual que en el caso de las columnas, es posible convertir este objeto en una lista de Python ( list(df.index.values)). Por otro lado, si solamente se desea acceder al nombre de una fila se puede acceder directamente a estas como cualquier otro array de NumPy.

df.index.values[3]
d

Conclusiones

En esta entrada se ha visto cómo se pueden obtener el nombre de las columnas y filas en Pandas. Tarea que nos puede ayudar a la hora de importar datos desde diferentes archivos.