No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Apply

23/24
Recursos

Apply Es un comando muy poderoso que nos deja aplicar funciones a nuestro DataFrame

  • Creamos unos DataFrame habitual
import pandas as pd
df_books = pd.read_csv('/work/DataFrames/bestsellers-with-categories.csv')
df_books.head(2)
  • Creamos nuestra función
def two_times(value):
    return value * 2
  • Lo aplicamos a la columna de User Rating
df_books['User Rating'].apply(two_times)
---> Se multiplica por 2 todos los valores de la columna
  • Podemos guardarlo en una columna nueva
df_books['User Rating2'] =df_books['User Rating'].apply(two_times)
  • Se pueden crear lambda functions
df_books['User Rating2'] =df_books['User Rating'].apply(lambda x: x* 3)
---> Multiplica todos los valores por 3
  • Apply en varias columnas con condiciones, hay que especificar a que los vamos a aplicar (filas o columnas)
df_books.apply(lambda x: x['User Rating'] * 2 if x['Genre'] == 'Fiction' else x['User Rating'], axis = 1)
---> Multiplica por 2 a los datos que cumplan la condición 

Contribución creada por: Edward Giraldo.

Aportes 8

Preguntas 3

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.

Algo que puede resultar útil al “seleccionar” una columna:

Normalmente lo hacemos así:

df['Name']

Pero podemos, por practicidad “seleccionarla” así:

df.Name

OJO: Esto solo es posible cuando el nombre de la columna NO tiene espacios.

Les dejo este aporte, son diferentes maneas de aplicar una función en pandas:

https://medium.com/@jassielmg/6-maneras-de-aplicar-una-función-a-una-columna-con-pandas-d0a82463b0e3

Esto si es lo maximo, chao excel!!!

Map

Dato curioso 🤓, la herramienta .map() es mas eficiente que .apply() o .transform() aplicando la función de two_times:

Funciones con más parámetros


Puedes usar funciones que recibaan más argumentos especificando los demás argumentos en args. Por ejemplo una función que convierta el rating desde cualquier base a caulquier base sería

import pandas as pd
df_best_sellers = pd.read_csv("https://static.platzi.com/media/public/uploads/bestsellers-with-categories_e591527f-ae45-4fa5-b0d1-d50142128fa6.csv")

# Una función con parametros
def convert_rating_base(rating, current_base, new_base):
    # Convert the current rating from the curret base to the new base
    return rating*new_base/current_base

# Apply y se pasan todos los demás argumentos después del primero en args
df_best_sellers["User Rating"].apply(convert_rating_base, args=(5, 7))

Otro ejemplo

¡Excelente clase! De nuevo me solvento muchas dudas que tenía respecto a .apply()