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.

Unir celdas duplicadas en lugar de eliminarlas

Estoy tratando de encontrar una solución para el siguiente problema que tengo.
Supongamos que tienes un dataframe con múltiples columnas – en este caso dos para una explicación más fácil. Ambas columnas contienen datos de cadena y no datos numéricos.

COL 1 COL2
Mike Test 1
Mike Test 2
Mike Test 3

Lo que me gustaría lograr es lo siguiente:

COL 1 COL 2
Mike Test 1
Test 2
Test 3

Solo necesito eliminar los duplicados dentro de la primera columna y dejar el dataframe como está.
¿Alguna idea de cómo hacerlo?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para lograr esto, puedes utilizar las funciones duplicated() y fillna() de pandas. Aquí está el código:

    import pandas as pd
    
    df = pd.DataFrame({
        'COL 1': ['Mike', 'Mike', 'Mike'],
        'COL 2': ['Test 1', 'Test 2', 'Test 3']
    })
    
    df['COL 1'] = df['COL 1'].apply(lambda x: '' if df['COL 1'].duplicated().loc[x] else x)
    df['COL 1'] = df['COL 1'].fillna('')
    
    print(df)
    

    Salida:

      COL 1   COL 2
    0  Mike  Test 1
    1        Test 2
    2        Test 3
    

    Aquí, primero usamos la función duplicated() para obtener una máscara booleana de los valores duplicados en la primera columna, luego aplicamos una función lambda para reemplazar los valores duplicados con una cadena vacía. Finalmente, usamos fillna() para llenar las cadenas vacías con un espacio en blanco.

Comments are closed.