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 鈥渟eleccionar鈥 una columna:

Normalmente lo hacemos as铆:

df['Name']

Pero podemos, por practicidad 鈥渟eleccionarla鈥 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()