typestar

transform y valores relativos al grupo en Python

transform devuelve un valor por fila, así que se alinea con el dataframe original.

import pandas as pd

tabla = pd.DataFrame({
    "lang": ["python", "python", "rust", "rust"],
    "tpm": [104, 91, 98, 88],
})

grupos = tabla.groupby("lang")["tpm"]
tabla["media_grupo"] = grupos.transform("mean")
tabla["parte"] = (tabla["tpm"] / grupos.transform("sum")).round(3)
tabla["puesto_en_grupo"] = grupos.rank(ascending=False).astype(int)

print(tabla)

Cómo funciona

  1. agg colapsa los grupos; transform propaga el resultado de vuelta.
  2. Así se calcula la proporción del total del grupo.
  3. rank dentro de un grupo numera sus filas.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
13
Caracteres a escribir
354
Tokens
132
Ritmo de tres estrellas
110 tpm

Al ritmo de tres estrellas de 110 tokens por minuto, este intento toma unos 72 segundos.

Escribe este fragmento

Paso 3 de 5 en Agrupación; paso 16 de 26 en pandas.

← Anterior Siguiente →