Python | Pandas.apply()

Pandas.apply permite a los usuarios pasar una función y aplicarla en cada valor de la serie Pandas. Se presenta como una gran mejora para la biblioteca de pandas, ya que esta función ayuda a segregar los datos de acuerdo con las condiciones requeridas, por lo que se usa de manera eficiente en la ciencia de datos y el aprendizaje automático.

Instalación:
Importe el módulo Pandas al archivo python usando los siguientes comandos en la terminal:

pip install pandas

Para leer el archivo csv y comprimirlo en una serie de pandas, se utilizan los siguientes comandos:

import pandas as pd
s = pd.read_csv("stock.csv", squeeze=True)

Sintaxis:

s.apply(func, convert_dtype=True, args=())

Parámetros:

func: .apply toma una función y la aplica a todos los valores de la serie pandas.
convert_dtype: convierte dtype según la operación de la función.
args=(): Argumentos adicionales para pasar a función en lugar de serie.
Tipo de retorno: Serie Pandas después de la función/operación aplicada.

Para el conjunto de datos, haga clic aquí para descargar.

Ejemplo 1:

El siguiente ejemplo pasa una función y verifica el valor de cada elemento en serie y devuelve bajo, normal o alto según corresponda.

import pandas as pd
  
# reading csv
s = pd.read_csv("stock.csv", squeeze = True)
  
# defining function to check price
def fun(num):
  
    if num<200:
        return "Low"
  
    elif num>= 200 and num<400:
        return "Normal"
  
    else:
        return "High"
  
# passing function to apply and storing returned series in new
new = s.apply(fun)
  
# printing first 3 element
print(new.head(3))
  
# printing elements somewhere near the middle of series
print(new[1400], new[1500], new[1600])
  
# printing last 3 elements
print(new.tail(3))

Producción:

Ejemplo #2:

En el siguiente ejemplo, se crea una función anónima temporal en .apply usando lambda. Agrega 5 a cada valor en serie y devuelve una nueva serie.

import pandas as pd
s = pd.read_csv("stock.csv", squeeze = True)
  
# adding 5 to each value
new = s.apply(lambda num : num + 5)
  
# printing first 5 elements of old and new series
print(s.head(), '\n', new.head())
  
# printing last 5 elements of old and new series
print('\n\n', s.tail(), '\n', new.tail())

Producción:

0    50.12
1    54.10
2    54.65
3    52.38
4    52.95
Name: Stock Price, dtype: float64 

0    55.12
1    59.10
2    59.65
3    57.38
4    57.95
Name: Stock Price, dtype: float64

3007    772.88
3008    771.07
3009    773.18
3010    771.61
3011    782.22
Name: Stock Price, dtype: float64
 
3007    777.88
3008    776.07
3009    778.18
3010    776.61
3011    787.22
Name: Stock Price, dtype: float64

Como se observa, Valores nuevos = valores antiguos + 5

Publicación traducida automáticamente

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