Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

442
Vistas
pandas convierten columnas a porcentajes de los totales

Tengo un marco de datos con 4 columnas, una identificación y tres categorías en las que cayeron los resultados

 <80% 80-90 >90 id 1 2 4 4 2 3 6 1 3 7 0 3

Me gustaría convertirlo a porcentajes, es decir:

 <80% 80-90 >90 id 1 20% 40% 40% 2 30% 60% 10% 3 70% 0% 30%

esto parece que debería estar dentro de las capacidades de los pandas, pero simplemente no puedo entenderlo.

¡Gracias por adelantado!

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Puede hacer esto usando los operadores básicos de pandas .div y .sum , usando el argumento del axis para asegurarse de que los cálculos se realicen de la manera que desea:

 cols = ['<80%', '80-90', '>90'] df[cols] = df[cols].div(df[cols].sum(axis=1), axis=0).multiply(100)
  • Calcule la suma de cada columna ( df[cols].sum(axis=1 ). axis=1 hace que la suma se produzca en las filas, en lugar de en las columnas.
  • Divida el marco de datos por la serie resultante ( df[cols].div(df[cols].sum(axis=1), axis=0 ). axis=0 hace que la división se realice en las columnas.
  • Para terminar, multiplica los resultados por 100 para que sean porcentajes entre 0 y 100 en lugar de proporciones entre 0 y 1 (o puedes saltarte este paso y almacenarlos como proporciones).
over 4 years ago · Santiago Trujillo Denunciar

0

df/df.sum()

Si desea dividir la suma de filas, transpóngala primero.

over 4 years ago · Santiago Trujillo Denunciar

0

La respuesta de Tim Tian funcionó bastante bien para mí, pero tal vez esto ayude si tienes un df con varias columnas y quieres hacer una columna de %.

 df_pct = df/df[df.columns].sum()*100

Estaba teniendo problemas porque quería tener el resultado de pd.pivot_table expresado como%, pero no pude hacerlo funcionar. Así que usé ese código en la tabla resultante y funcionó.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda