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