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.

Ordenar los valores en un dataframe donde la columna contiene listas de tuplas.

Marco de datos

Valores que necesitan ser ordenados

Esa columna contiene una lista de valores de tuplas..

por ejemplo: {1100. [(a,4), (b,6)]}
y hay n clientes como tal …
el resultado debe ser 6,b 4,a

La consulta es ordenar basado en la clasificación de los juegos recomendados.

He usado el siguiente código

py
sort_rank = sorted(recommend_dict.items(), key=lambda x: x[1], reverse=True)
recommend_games_df= pd.DataFrame.from_dict(sort_rank)

pero esto está fallando …

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    La pregunta no es clara acerca del formato de los datos de entrada, pero suponiendo que los datos están en un DataFrame de pandas y la columna que contiene la lista de tuplas se llama “recommended_games”, el siguiente fragmento de código puede ser utilizado para ordenar los valores basándose en el segundo elemento de cada tupla en la lista:

    # Definir una función para ordenar la lista de tuplas basándose en el segundo elemento
    def sort_tuples(lst):
        return sorted(lst, key=lambda x: x[1], reverse=True)
    
    # Aplicar la función a la columna "recommended_games" y asignarla a una nueva columna "sorted_games"
    df['sorted_games'] = df['recommended_games'].apply(sort_tuples)
    
    # Extraer los valores ordenados como una lista de cadenas separadas por comas
    sorted_values =  [','.join([f"{t[1]},{t[0]}" for t in lst]) for lst in df['sorted_games']]
    
    # Asignar los valores ordenados de vuelta a la columna original
    df['recommended_games'] = sorted_values
    

    Este código utiliza el método apply del DataFrame de pandas para aplicar una función a cada valor en la columna “recommended_games”, la cual ordena la lista de tuplas basándose en el segundo elemento de cada tupla. Los valores ordenados son entonces convertidos a una lista de cadenas separadas por comas utilizando una lista por comprensión con expresiones de formato de cadena anidadas. Finalmente, los valores ordenados son asignados de vuelta a la columna original “recommended_games”.

Comments are closed.