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.

grupo y obtener la entrada con mayor ocurrencia pandas

Tengo un dataframe con datos de ciudades que tienen diferentes tipos de productos, como:

city product_type
A B
A B
A D
A E
X B
X C
X C
X C

Quiero saber cuál es el tipo de producto más común para cada ciudad. Para el dataframe anterior, sería el producto B para la ciudad A y el producto C para la ciudad X.

Estoy intentando resolver esto agrupando primero y luego iterando sobre los grupos para encontrar el tipo de producto con mayor ocurrencia, pero no parece funcionar:

d = df.groupby(‘city’)[‘product_type’]
prods=[]

for name, group in d:
l = [group]
prod = max(l, key=l.count)
prods.append(prod)

print(prods) # esta es una lista de los productos con mayor ocurrencia en cada ciudad

Este fragmento de código parece devolverme TODOS los tipos de productos, no solo los más frecuentes.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para obtener el tipo de producto más común para cada ciudad, puedes usar el método value_counts junto con groupby para contar las ocurrencias de cada tipo de producto para cada ciudad, y luego usar idxmax para obtener el tipo de producto con el mayor número de ocurrencias para cada ciudad.

    Aquí tienes un fragmento de código actualizado:

    d = df.groupby('city')['product_type']
    prods = []
    for name, group in d:
        prod = group.value_counts().idxmax()
        prods.append(prod)
    
    print(prods)
    

    Esto debería darte una lista de los tipos de productos más comunes para cada ciudad en el dataframe.

Comments are closed.