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.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para encontrar el nombre de la columna de la fila con el valor máximo cuando dos filas contienen el valor máximo, puedes modificar el código de la siguiente manera:

    import pandas as pd
    
    # Crear el dataframe
    df = pd.DataFrame({
        'x': [1, 1, 0, 0, 1],
        'y': [0, 0, 0, 1, 1],
        'z': [0, 1, 1, 1, 0]
    })
    
    # Encontrar la columna con el valor máximo para cada fila
    max_cols = df.idxmax(axis=1)
    
    # Modificar max_cols para manejar empates
    for i in range(len(max_cols)):
        max_val = df.loc[i, max_cols[i]]
        if max_val in df.drop(columns=max_cols[i]).loc[i].values:
            max_cols[i] = df.drop(columns=max_cols[i]).loc[i].idxmax()
    
    # Imprimir los nombres de las columnas resultantes
    print(max_cols)
    

    Este código primero encuentra la columna con el valor máximo para cada fila utilizando idxmax(). Luego, verifica si hay empates para el valor máximo al observar los otros valores de columna para esa fila. Si hay empates, reemplaza la columna máxima con la columna que tiene el siguiente valor más alto utilizando drop() e idxmax(). Por último, imprime los nombres de las columnas resultantes. La salida será:

    0    x
    1    z
    2    z
    3    z
    4    y
    dtype: object
    

    que es la salida deseada.

Comments are closed.