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 puedo hacer la siguiente transformación de un dataframe en Python?

¿Alguien puede ayudarme a transformar la siguiente tabla utilizando una función de PYTHON?

Necesito 2 columnas nuevas: “Tipo de seguidor”, que tendrá entradas como orgánico o pagado, y “Conteo de seguidores”, que tendrá los valores correspondientes al tipo de seguidor.

Tabla actual –

org seguidor orgánico seguidor pagado fecha de inicio fecha de finalización
One 2 0 1634169600000 1634256000000
One -1 0 1634256000000 1634342400000

Tabla deseada –

org fecha de inicio fecha de finalización Tipo de seguidor Conteo de seguidores
One 1634169600000 1634256000000 Orgánico 2
One 1634169600000 1634256000000 Pagado 0
One 1634256000000 1634342400000 Orgánico -1
One 1634256000000 1634342400000 Pagado 0

Si alguien sabe cómo hacer esto, por favor avíseme.
¡Gracias y saludos!

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Sí, una función de PYTHON se puede utilizar para transformar la tabla actual en la deseada. A continuación se muestra un código de muestra que se puede utilizar para lograr la transformación:

    import pandas as pd
    
    # crear la tabla actual
    df = pd.DataFrame({
        'org': ['Uno', 'Uno'],
        'seguidor orgánico': [2, -1],
        'seguidor pagado': [0, 0],
        'fecha de inicio': [1634169600000, 1634256000000],
        'fecha de fin': [1634256000000, 1634342400000]
    })
    
    # derretir la tabla para convertir las columnas en filas
    df_derretida = pd.melt(df, id_vars=['org', 'fecha de inicio', 'fecha de fin'], var_name='Tipo de Seguidor', value_name='Cantidad de Seguidores')
    
    # mapear los valores de la columna a los valores deseados
    df_derretida['Tipo de Seguidor'] = df_derretida['Tipo de Seguidor'].map({'seguidor orgánico': 'Orgánico', 'seguidor pagado': 'Pagado'})
    
    # ordenar las filas por fecha de inicio y restablecer el índice
    df_transformada = df_derretida.sort_values(by='fecha de inicio').reset_index(drop=True)
    
    # mostrar la tabla transformada
    print(df_transformada)
    

    Salida:

       org    fecha de inicio     fecha de fin Tipo de Seguidor  Cantidad de Seguidores
    0  Uno  1634169600000  1634256000000       Orgánico               2
    1  Uno  1634169600000  1634256000000          Pagado               0
    2  Uno  1634256000000  1634342400000       Orgánico              -1
    3  Uno  1634256000000  1634342400000          Pagado               0
    

    El código de muestra crea la tabla actual como un DataFrame de pandas, luego utiliza la función melt() para convertir las columnas en filas. El DataFrame derretido se modifica para mapear los valores de la columna Tipo de Seguidor a los valores deseados. Finalmente, las filas se ordenan por fecha de inicio utilizando la función sort_values() y se restablece el índice utilizando la función reset_index().

Comments are closed.