Cambiar el nombre de columnas específicas en Pandas

Dado un marco de datos de pandas , veamos cómo cambiar el nombre de columnas específicas usando varios métodos. 

Primero, creemos un marco de datos:

Python3

# import pandas package
import pandas as pd
  
# defining a dictionary
d = {"Name": ["John", "Mary", "Helen"],
     "Marks": [95, 75, 99],
     "Roll No": [12, 21, 9]}
  
# creating the pandas data frame
df = pd.DataFrame(d)
  
df

Producción:

Dataframe

Método 1: Usar Dataframe.rename() .

Este método es una forma de cambiar el nombre de las columnas requeridas en Pandas. Nos permite especificar los nombres de las columnas a cambiar en forma de diccionario con las claves y valores como los nombres actuales y nuevos de las respectivas columnas. 

Ejemplo 1: Cambiar el nombre de una sola columna.

Python3

# import pandas package
import pandas as pd
  
# defining a dictionary
d = {"Name": ["John", "Mary", "Helen"],
     "Marks": [95, 75, 99],
     "Roll No": [12, 21, 9]}
  
# creating the pandas data frame
df = pd.DataFrame(d)
  
# displaying the columns 
# before renaming
print(df.columns)
  
# renaming the column "A"
df.rename(columns = {"Name": "Names"}, 
          inplace = True)
  
# displaying the columns after renaming
print(df.columns)

Producción:

rename column

Ejemplo 2: cambio de nombre de varias columnas.

Python3

# import pandas package
import pandas as pd
  
# defining a dictionary
d = {"Name": ["John", "Mary", "Helen"],
     "Marks": [95, 75, 99],
     "Roll No": [12, 21, 9]}
  
# creating the pandas dataframe
df = pd.DataFrame(d)
  
# displaying the columns before renaming
print(df.columns)
  
# renaming the columns
df.rename({"Name": "Student Name", 
           "Marks": "Marks Obtained", 
           "Roll No": "Roll Number"}, 
          axis = "columns", inplace = True)
  
# displaying the columns after renaming
print(df.columns)

Producción:

rename columns

Ejemplo 3: pasar la función lambda para cambiar el nombre de las columnas.

Python3

# using the same modified dataframe
# df from Renaming Multiple Columns
# this adds ':' at the end 
# of each column name
df = df.rename(columns = lambda x: x+':')
  
# printing the columns
print(df.columns)

Producción:

rename column

La función lambda es una pequeña función anónima que puede tomar cualquier cantidad de argumentos pero solo puede tener una expresión. Podemos usarlo si tenemos que modificar todas las columnas a la vez. Es útil si la cantidad de columnas es grande y no es una tarea fácil cambiarles el nombre usando una lista o un diccionario (¡mucho código, uf!). En el ejemplo anterior, usamos la función lambda para agregar dos puntos (‘:’) al final de cada nombre de columna.

Método 2: Usar el atributo de valores .

Podemos usar el atributo de valores en la columna que queremos renombrar y cambiarla directamente.

Python3

# using the same modified dataframe 
# df from Renaming Multiple Columns
# Renaming the third column
df.columns.values[2] = "Roll Number" 
  
# printing the columns
print(df.columns)

Producción:

rename column

Método 3: usar una nueva lista de nombres de columna.

Pasamos los nombres de las columnas actualizadas como una lista para cambiar el nombre de las columnas. La longitud de la lista que proporcionamos debe ser la misma que la cantidad de columnas en el marco de datos. De lo contrario, se produce un error.

Python3

# Creating a list of new columns
df_cols = ["Student Name", 
           "Marks Obtained",
           "Roll Number"]
  
# printing the columns 
# before renaming
print(df.columns)
  
# Renaming the columns
df.columns = df_cols
  
# printing the columns 
# after renaming
print(df.columns)

Producción:

rename columns

Método 4: Usar Dataframe.columns.str.replace() .

En general, si la cantidad de columnas en el marco de datos de Pandas es enorme, digamos casi 100, y queremos reemplazar el espacio en todos los nombres de las columnas (si existe) por un guión bajo. No es fácil proporcionar una lista o un diccionario para cambiar el nombre de todas las columnas. Por lo tanto, usamos un método como el siguiente:

Python3

# printing the column 
# names before renaming
print(df.columns)
  
# Replacing the space in column 
# names by an underscore
df.columns = df.columns.str.replace(' ', '_')
  
# printing the column names 
# after renaming
print(df.columns)

Producción:

rename columns

Además, se pueden usar otros métodos de string como str.lower para hacer que todos los nombres de las columnas estén en minúsculas.

Nota: suponga que un nombre de columna no está presente en el marco de datos original, pero está en el diccionario proporcionado para cambiar el nombre de las columnas. De forma predeterminada, el parámetro de errores de la función cambiar nombre() tiene el valor ‘ignorar’. Por lo tanto, no se muestra ningún error y las columnas existentes se renombran según las instrucciones. Por el contrario, si establecemos el parámetro de errores en ‘elevar’, se genera un error que indica que la columna en particular no existe en el marco de datos original. 

A continuación se muestra un ejemplo de la misma:

Ejemplo 1: no se genera ningún error, ya que los errores predeterminados se establecen en ‘ignorar’.

Python3

# NO ERROR IS RAISED 
  
# import pandas package
import pandas as pd
  
# defining a dictionary
d = {"A": [1, 2, 3], 
     "B": [4, 5, 6]}
  
# creating the pandas dataframe
df = pd.DataFrame(d)
  
# displaying the columns before renaming
print(df.columns)
  
# renaming the columns
# column "C" is not in 
# the original dataframe 
# errors parameter is
# set to 'ignore' by default
df.rename(columns = {"A": "a", "B": "b",
                     "C": "c"}, 
          inplace = True)
  
# displaying the columns
# after renaming
print(df.columns)

Producción:

no error

Ejemplo 2: Establecer los errores de parámetro en ‘aumentar’. Se genera un error (la columna C no existe en el marco de datos original).

Python3

# ERROR IS RAISED 
  
# import pandas package
import pandas as pd
  
# defining a dictionary
d = {"A": [1, 2, 3],
     "B": [4, 5, 6]}
  
# creating the pandas dataframe
df = pd.DataFrame(d)
  
# displaying the columns
# before renaming
print(df.columns)
  
# renaming the columns
# column "C" is not in the 
# original dataframe setting
# the errors parameter to 'raise'
df.rename(columns = {"A": "a", "B": "b", 
                     "C": "c"}, 
          inplace = True, errors = 'raise')
  
# displaying the columns 
# after renaming
print(df.columns)

Producción:

error shows

Se genera un error

Publicación traducida automáticamente

Artículo escrito por eshwitha_reddy y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *