Cómo cambiar el nombre de la columna Pandas DataFrame en Python

En este tutorial, veremos cómo cambiar el nombre de una columna de Pandas DataFrame en Python. Cubriremos la función de cambio de nombre () así como la creación de un nuevo marco de datos.

Introducción

pandas es una biblioteca de Python para el análisis y la manipulación de datos. Casi todas las operaciones en pandas giran en torno a DataFrames.

Un Dataframe es una representación abstracta de una tabla bidimensional que puede contener todo tipo de datos. También nos permiten dar nombres a todas las columnas, razón por la cual a menudo las columnas se denominan atributos o campos cuando se usan DataFrames.

En este artículo, veremos cómo podemos cambiar el nombre de las columnas DataFrame ya existentes.

Hay dos opciones para manipular los nombres de las columnas de un DataFrame:

  1. Cambiar el nombre de las columnas de un DataFrame existente
  2. Asignar nombres de columna personalizados al crear un nuevo DataFrame

Echemos un vistazo a ambos métodos.

Cambiar el nombre de las columnas de un marco de datos existente {#cambiar el nombre de las columnas de un marco de datos existente}

Tenemos un DataFrame de muestra a continuación:

1
2
3
4
import pandas as pd
data = {'Name':['John', 'Doe', 'Paul'], 
        'age':[22, 31, 15]} 
df = pd.DataFrame(data)

El DataFrame df se ve así:

original pandas dataframe

Para renombrar las columnas de este DataFrame, podemos usar el método rename() que toma:

  1. Un diccionario como argumento columns que contiene la asignación de nombres de columna originales a los nuevos nombres de columna como pares clave-valor
  2. Un valor ‘booleano’ como argumento ‘inplace’, que si se establece en ‘True’ hará cambios en el ‘Dataframe’ original

Cambiemos los nombres de las columnas en nuestro DataFrame de Name, age a First Name, Age.

1
df.rename(columns = {'Name' : 'First Name', 'age' : 'Age'}, inplace = True)

Ahora, nuestro df contiene:

pandas dataframe rename column

Asigne nombres de columna al crear un marco de datos

Ahora discutiremos cómo asignar nombres de columna al crear un DataFrame.

Esto es particularmente útil cuando está creando un DataFrame a partir de un archivo csv y desea ignorar los nombres de las columnas del encabezado y asignar los suyos propios.

Al pasar una lista al argumento names, podemos anular la columna de encabezado ya existente con la nuestra. La lista debe tener un nombre para cada columna de los datos; de lo contrario, se genera una excepción.

Tenga en cuenta que si queremos cambiar el nombre de solo unas pocas columnas, es mejor usar el método rename en el DataFrame después de crearlo.

Crearemos un DataFrame usando out.csv, que tiene los siguientes contenidos:

1
2
3
4
Name, age
John, 22
Doe, 31
Paul, 15

Tenga en cuenta que la primera línea del archivo es la línea de encabezado y contiene los nombres de las columnas. Pandas, por defecto, asigna los nombres de las columnas al DataFrame desde la primera línea.

Por lo tanto, especificaremos ignorar la línea de encabezado mientras creamos nuestro DataFrame y especificaremos los nombres de las columnas en una lista que se pasa al argumento names:

1
2
3
columns = ['First Name', 'Age']
df = pd.read_csv('out.csv', header = None, names = columns)
df

Esto resulta en:

new dataframe changed column names

Otra forma de hacer esto es especificando los nombres de las columnas en el antiguo constructor DataFrame().

La única diferencia es que ahora el parámetro que toma la lista de nombres de columna se llama columna en lugar de nombres:

1
2
3
4
5
6
import numpy as np

new_columns = ['First Name', 'Age']
data = np.array([["Nicholas", 23],["Scott", 32],["David", 25]])

df = pd.DataFrame(data, columns = new_columns)

Esto da como resultado un DataFrame diferente:

dataframe constructor rename column

Conclusión

En este artículo, hemos repasado rápidamente cómo podemos nombrar y renombrar columnas en DataFrames. Ya sea asignando nombres mientras se construye la instancia de DataFrame, o renombrándolos después del hecho con el método rename().