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.

Cómo realizar la intersección de características de marcas y meses.

Supongamos que tengo tres DataFrames de pandas:

Marcas           Meses         Ventas
hersheys         2020-08        $100
hersheys         2020-09        $200
snickers         2020-01        $20
reeses           2019-02        $200
...              ...

donde Meses es el mes en el que estamos viendo las ventas para una marca en particular.

Mi pregunta es, ¿cómo podemos cruzar características de Marcas y Meses para crear una nueva característica “MarcasxMeses”? A partir de lo que he visto en línea, parece que la única opción es usar la categorización o binning de TensorFlow, pero ¿hay alguna manera más fácil de hacerlo (como usar pandas, ya que estamos tratando con dataframes)?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Sí, hay una manera más fácil de crear una nueva característica llamada “BrandsxMonths” utilizando pandas. Una forma de lograr esto es utilizando la función “pivot_table” en pandas. Podemos girar el dataframe original con “Brands” como filas, “Months” como columnas y “Sales” como valores. Luego, podemos aplanar el dataframe resultante restableciendo el índice y concatenando las columnas de marcas y meses. Aquí hay un código de ejemplo para lograr esto:

    import pandas as pd
    
    # suponga que el dataframe original se llama df
    pivot_df = df.pivot_table(index='Brands', columns='Months', values='Sales')
    pivot_df = pivot_df.reset_index()
    pivot_df.columns.name = None
    pivot_df['BrandsxMonths'] = pivot_df['Brands'] + 'x' + pivot_df['Months'].astype(str)
    

    El dataframe resultante tendrá “BrandsxMonths” como una nueva característica, que combina los valores de las columnas “Brands” y “Months”.

Comments are closed.