Mientras trabajamos con datos en Pandas, realizamos una amplia gama de operaciones en los datos para obtener los datos en la forma deseada. Una de estas operaciones podría ser que queramos crear nuevas columnas en el DataFrame en función del resultado de algunas operaciones en las columnas existentes en el DataFrame. Vamos a discutir varias formas en que podemos hacer eso.
Dado un marco de datos que contiene datos sobre un evento, nos gustaría crear una nueva columna llamada ‘Precio_con descuento’ , que se calcula después de aplicar un descuento del 10 % en el precio de la entrada.
Solución #1: Podemos usar DataFrame.apply()
la función para lograr esta tarea.
# importing pandas as pd import pandas as pd # Creating the DataFrame df = pd.DataFrame({'Date':['10/2/2011', '11/2/2011', '12/2/2011', '13/2/2011'], 'Event':['Music', 'Poetry', 'Theatre', 'Comedy'], 'Cost':[10000, 5000, 15000, 2000]}) # Print the dataframe print(df)
Producción :
Ahora crearemos una nueva columna llamada ‘Precio_con_descuento’ después de aplicar un descuento del 10 % en la columna ‘Costo’ existente.
# using apply function to create a new column df['Discounted_Price'] = df.apply(lambda row: row.Cost - (row.Cost * 0.1), axis = 1) # Print the DataFrame after addition # of new column print(df)
Producción :
Solución n.º 2: podemos lograr el mismo resultado realizando directamente la operación requerida en el elemento de la columna deseada.
# importing pandas as pd import pandas as pd # Creating the DataFrame df = pd.DataFrame({'Date':['10/2/2011', '11/2/2011', '12/2/2011', '13/2/2011'], 'Event':['Music', 'Poetry', 'Theatre', 'Comedy'], 'Cost':[10000, 5000, 15000, 2000]}) # Create a new column 'Discounted_Price' after applying # 10% discount on the existing 'Cost' column. # create a new column df['Discounted_Price'] = df['Cost'] - (0.1 * df['Cost']) # Print the DataFrame after # addition of new column print(df)
Producción :
Publicación traducida automáticamente
Artículo escrito por Shubham__Ranjan y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA