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.
1. import pandas as pd
2.
3. users = {'first_name': ['Montgomery', 'Dagmar', 'Reeba', 'Shalom', 'Broddy', 'Aurelia'],
4. 'last_name': ['Humes', 'Elstow', 'Wattisham', 'Alen', 'Keningham', 'Brechin'],
5. 'age': [27, 41, 29, 29, 21, 33],
6. 'gender': ['Male', 'Female', 'Female', 'Male', 'Male', 'Female']}
7. 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.
1. 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.
1. 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.
1. 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.
1. 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.
1. df.index.values[3]