es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cambiar los valores de cadena con los nuevos valores contenidos en otro marco de datos.

Tengo un archivo CSV con miles de filas de datos de ventas de la siguiente manera:

pd.DataFrame({
    'Nombre_artículo': ['guacamole', 'morita', 'verde', 'pico', 'tomatillo'],
    'Número_inv': ['0001', '0002', '0003', '0004', '0005'],
    'Nombre_tienda': ['alex', 'pusateris', 'wholefoods', 'longos', 'metro']
})

Ahora los nombres de los artículos han cambiado a los siguientes:

pd.DataFrame ({
'Nombre_artículo': ['Dip guacamole', 'morita Spicy', ' Salsa verde', 'Pico de Gallo', 'Roasted tomatillo']
})

Lo que quiero lograr es cambiar el antiguo nombre por el nuevo. Estoy usando el siguiente código para cada artículo, ¡pero esto va a llevar una eternidad!

sales_df['código_artículo'] = sales_df['código_artículo'].replace({'guacamole':'Dip guacamole'}) 

¿Existe alguna manera de simplificar este código? ¿Quizás crear una lista con los nuevos nombres e iterar a través de los datos de ventas?

Espero con interés tus comentarios.

¡Gracias!

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, hay una forma de simplificar este código. Puedes crear un diccionario con los nombres antiguos como claves y los nombres nuevos como valores, luego usar el método “replace” con el diccionario como entrada. Aquí tienes un ejemplo:

    # Define el diccionario con los nombres antiguos como claves y los nombres nuevos como valores
    name_mapping = {
        'guacamole': 'Dip guacamole',
        'morita': 'morita picante',
        'verde': 'Salsa verde',
        'pico': 'Pico de Gallo',
        'tomatillo': 'Tomatillo asado'
    }
    
    # Usa el método "replace" con el diccionario como entrada
    sales_df['Item_name'] = sales_df['Item_name'].replace(name_mapping)
    

    Esto aplicará la asignación de nombres a la columna “Item_name” del dataframe “sales_df”, reemplazando los nombres antiguos con los nombres nuevos.

Comments are closed.