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 filtrar utilizando el operador “>” y luego aplicar el concepto de “groupby” a un dataframe.

¿Cómo puedo filtrar una consulta y luego hacer un “group by”?

df.query(“‘result_margin’ > 100”).groupby([‘city’,’season’,’toss_winner’,’toss_decision’,’winner’])[‘winner’].size()

Me está saliendo este error:

TypeError: ‘>’ not supported between instances of ‘str’ and ‘int’

Estoy intentando filtrar donde el resultado_margin es mayor a 100, luego agruparlo por las columnas especificadas y mostrar los registros.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error sugiere que el valor en la columna “result_margin” podría ser una cadena en lugar de un entero. Para solucionar este error, puedes convertir la columna “result_margin” a un entero antes de aplicar el filtro. Aquí tienes un ejemplo:

    df['result_margin'] = df['result_margin'].astype(int) # convertir la columna a entero
    filtered_df = df.query('result_margin > 100') # aplicar el filtro
    grouped_df = filtered_df.groupby(['ciudad', 'temporada', 'toss_winner', 'toss_decision', 'ganador'])['ganador'].size() # realizar la operación de agrupación
    print(grouped_df) # imprimir los resultados
    

    Este código primero convierte la columna “result_margin” a un entero utilizando el método astype(). Luego, aplica el filtro utilizando el método query() para crear un nuevo dataframe. Finalmente, realiza la operación de agrupación utilizando el método groupby() e imprime los resultados.

Comments are closed.