¿Cómo aplicar una función a varias columnas en Pandas?

Veamos cómo aplicar una función a varias columnas en un DataFrame de Pandas. Para ejecutar esta tarea se utilizará la función apply() .
 

pandas.DataFrame.apply

Esta función aplica una función a lo largo de un eje del DataFrame. 
 

Sintaxis: DataFrame.apply(parámetros)
Parámetros: 
 

  • func : Función a aplicar a cada columna o fila.
  • axis : Eje a lo largo del cual se aplica la función
  • raw: determina si la fila o la columna se pasa como un objeto Serie o ndarray.
  • result_type: ‘expandir’, ‘reducir’, ‘transmitir’, Ninguno; predeterminado Ninguno
  • args : Argumentos posicionales para pasar a func además de la array/serie.
  • **kwds: Argumentos de palabras clave adicionales para pasar como argumentos de palabras clave a func.

Devoluciones: Serie o DataFrame 
 

Ejemplo 1: Anteponer «Geek» antes de cada elemento en dos columnas. 
 

Python3

# import the module
import pandas as pd
 
# creating a DataFrame
df = pd.DataFrame({'String 1' :['Tom', 'Nick', 'Krish', 'Jack'],
                   'String 2' :['Jane', 'John', 'Doe', 'Mohan']})
 
# displaying the DataFrame
display(df)
 
# function for prepending 'Geek'
def prepend_geek(name):
    return 'Geek ' + name
 
# executing the function
df[["String 1", "String 2"]] = df[["String 1", "String 2"]].apply(prepend_geek)
 
# displaying the DataFrame
display(df)

Producción : 
 

Ejemplo 2: Multiplicar el valor de cada elemento por 2 
 

Python3

# import the module
import pandas as pd
 
# creating a DataFrame
df = pd.DataFrame({'Integers' :[1, 2, 3, 4, 5],
                   'Float' :[1.1, 2.2, 3.3, 4.4 ,5.5]})
 
# displaying the DataFrame
display(df)
 
# function for prepending 'Geek'
def multiply_by_2(number):
    return 2 * number
 
# executing the function
df[["Integers", "Float"]] = df[["Integers", "Float"]].apply(multiply_by_2)
 
# displaying the DataFrame
display(df)

Producción : 
 

Publicación traducida automáticamente

Artículo escrito por Akashkumar17 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 *