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
aggcolapsa los grupos;transformpropaga el resultado de vuelta.- Así se calcula la proporción del total del grupo.
rankdentro de un grupo numera sus filas.
Palabras clave y builtins usados aquí
asintprint
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.
Paso 3 de 5 en Agrupación; paso 16 de 26 en pandas.