Este artículo demostrará cómo sumar todas las columnas o columnas particulares en un DataFrame de Pandas usando Python. La función DataFrame.sum() se usará junto con algunos parámetros útiles en los numerosos ejemplos de este tutorial.
La función ‘dataframe.sum()’ en Pandas devuelve la suma total para el eje especificado. Si la entrada es un eje del índice, la función agrega los valores de cada columna individualmente. Luego hace lo mismo para cada columna, devolviendo una serie que almacena la suma de los datos/valores en cada columna. Además, admite el cálculo de la suma de DataFrame ignorando los valores faltantes.
Sintaxis
pandas.DataFrame_object.sum(eje = Ninguno, skipna = Ninguno, nivel = Ninguno, numeric_only = Ninguno, min_count = 0, **kwargs)
Parámetros
- eje: {columnas (1), índice (0)}
- skipna: Ignore los valores NA/null al calcular el resultado.
- nivel: Si el eje especificado es jerárquico (un índice múltiple), cuente hasta un nivel de índice particular antes de convertirlo en Serie.
- solo numérico: Solo se aceptan columnas flotantes, int y booleanas. Si ninguno, intente usar todo; si no, sólo datos numéricos. Para Serie, no implementado.
- min_count: El número de valores posibles requeridos para completar la operación. El resultado será NA si hay menos valores que no sean NA presentes que min_count.
Retorno
DataFrame (si se especifica el nivel) o Serie.
Marco de datos
Para todos los ejemplos, utilizaremos el siguiente DataFrame de ‘análisis’. Contiene 12 filas con 5 columnas.
# Crea el marco de datos usando listas
análisis = pandas.DataFrame([[23,‘sravan’,1000,34,56],
[23,‘sravan’,700,11,0],
[23,‘sravan’,20,4,2],
[21,‘siva’,400,32,45],
[21,‘siva’,100,456,78],
[23,‘sravan’,00,90,12],
[21,‘siva’,400,32,45],
[20,‘sahaja’,120,1,67],
[23,‘sravan’,00,90,12],
[22,‘suryam’,450,76,56],
[22,‘suryam’,40,0,1],
[22,‘suryam’,12,45,0]
],columnas=[‘id’,‘name’,‘points3’,‘points1’,‘points2’])
# Mostrar el DataFrame – análisis
imprimir(análisis)
Producción
identificación nombre puntos3 puntos1 puntos2
0 23 Sravan 1000 34 56
1 23 Sravan 700 11 0
2 23 Sravan 20 4 2
3 21 Siva 400 32 45
4 21 Siva 100 456 78
5 23 Sravan 0 90 12
6 21 Siva 400 32 45
7 20 sahaja 120 1 67
8 23 Sravan 0 90 12
9 22 suriam 450 76 56
10 22 suriam 40 0 1
11 22 suriam 12 45 0
Aquí, las columnas ‘id’, ‘points3’, ‘points2’ y ‘points1’ son numéricas y asegúrese de que necesita cargar el DataFrame para todos los ejemplos que estamos discutiendo en este tutorial.
Escenario 1: Suma de todas las columnas
Podemos aplicar sum() directamente en el DataFrame para devolver la suma de valores en cada columna.
pandas.DataFrame_object.sum()
Ejemplo
imprimir(análisis.sum())
Producción
identificación 264
nombre sravansravansravansivasivasravansivasahajasrav…
puntos3 3242
puntos1 871
puntos2 374
Explicación
Puede ver que se devuelve la suma de los valores en cada columna.
Escenario 2: Suma de columna particular
Si desea devolver la suma de valores en una columna en particular, debe especificar el nombre de la columna y el objeto DataFrame.
pandas.DataFrame_object[‘column’].suma()
Ejemplo
Devolvamos la suma de los valores en las columnas ‘puntos1’, ‘puntos2’ y ‘puntos3’ por separado.
imprimir(análisis[‘points1’].suma())
# Devuelve la suma de los valores en la columna puntos2
imprimir(análisis[‘points2’].suma())
# Devuelve la suma de los valores en la columna puntos3
imprimir(análisis[‘points3’].suma())
Producción
Explicación
- La suma de los valores en la columna puntos1 es 871.
- La suma de los valores en la columna puntos2 es 374.
- La suma de los valores en la columna puntos3 es 3242.
Escenario 3: suma de filas
Si desea devolver la suma de valores en cada fila, debe especificar el parámetro del eje en la función sum() y establecerlo en 1.
pandas.DataFrame_object[[column/s…]].suma(eje=1)
Ejemplo
Devolvamos la suma de los valores de ‘puntos1’, ‘puntos2’ y ‘puntos3’ en todas las filas y almacenemos el resultado en la columna ‘SUMA’.
análisis[‘SUM’]=análisis[[‘points1’,‘points2’,‘points3’]].suma(eje=1)
imprimir(análisis)
Producción
identificación nombre puntos3 puntos1 puntos2 SUMA
0 23 Sravan 1000 34 56 1090
1 23 Sravan 700 11 0 711
2 23 Sravan 20 4 2 26
3 21 Siva 400 32 45 477
4 21 Siva 100 456 78 634
5 23 Sravan 0 90 12 102
6 21 Siva 400 32 45 477
7 20 sahaja 120 1 67 188
8 23 Sravan 0 90 12 102
9 22 suriam 450 76 56 582
10 22 suriam 40 0 1 41
11 22 suriam 12 45 0 57
Explicación
Ahora, la nueva columna – ‘SUMA’ contiene la suma de tres puntos.
También podemos sumar entre filas sin usar sum(). Al usar el operador “+”, podemos lograr la funcionalidad anterior.
Ejemplo
- Agregue valores en las columnas puntos1 y puntos2 y almacene el resultado en el ‘2 Añadido‘ columna.
- Agregue valores en las columnas puntos1, puntos2 y puntos3 y almacene el resultado en el ‘3 Añadido‘ columna.
# Crea el marco de datos usando listas
análisis = pandas.DataFrame([[23,‘sravan’,1000,34,56],
[23,‘sravan’,700,11,0],
[23,‘sravan’,20,4,2],
[21,‘siva’,400,32,45],
[21,‘siva’,100,456,78],
[23,‘sravan’,00,90,12],
[21,‘siva’,400,32,45],
[20,‘sahaja’,120,1,67],
[23,‘sravan’,00,90,12],
[22,‘suryam’,450,76,56],
[22,‘suryam’,40,0,1],
[22,‘suryam’,12,45,0]
],columnas=[‘id’,‘name’,‘points3’,‘points1’,‘points2’])
# Agregue valores en las columnas puntos1 y puntos2 y almacene el resultado en la columna ‘2 agregados’
análisis[‘2 Added’]=análisis[‘points1’]+análisis[‘points2’]
# Agregue valores en las columnas puntos1, puntos2 y puntos2 y almacene el resultado en la columna ‘3 agregados’
análisis[‘3 Added’]=análisis[‘points1’]+análisis[‘points2’]+análisis[‘points3’]
imprimir(análisis)
Producción
identificación nombre puntos3 puntos1 puntos2 2 Agregado 3 Agregado
0 23 Sravan 1000 34 56 90 1090
1 23 Sravan 700 11 0 11 711
2 23 Sravan 20 4 2 6 26
3 21 Siva 400 32 45 77 477
4 21 Siva 100 456 78 534 634
5 23 Sravan 0 90 12 102 102
6 21 Siva 400 32 45 77 477
7 20 sahaja 120 1 67 68 188
8 23 Sravan 0 90 12 102 102
9 22 suriam 450 76 56 132 582
10 22 suriam 40 0 1 1 41
11 22 suriam 12 45 0 45 57
Escenario 4: sum() con groupby()
Si desea devolver la suma de valores para grupos individuales, debe usar groupby() con sum(). Entonces, groupby() se usa para agrupar los valores de columna en una columna en particular, y sum() devolverá la suma en cada grupo.
pandas.DataFrame_object.groupby(‘columna_agrupación’).suma()
Ejemplo
Agrupemos las filas en función de la columna de nombre y devolvamos la suma de los valores de cada grupo para todas las columnas.
# Crea el marco de datos usando listas
análisis = pandas.DataFrame([[23,‘sravan’,1000,34,56],
[23,‘sravan’,700,11,0],
[23,‘sravan’,20,4,2],
[21,‘siva’,400,32,45],
[21,‘siva’,100,456,78],
[23,‘sravan’,00,90,12],
[21,‘siva’,400,32,45],
[20,‘sahaja’,120,1,67],
[23,‘sravan’,00,90,12],
[22,‘suryam’,450,76,56],
[22,‘suryam’,40,0,1],
[22,‘suryam’,12,45,0]
],columnas=[‘id’,‘name’,‘points3’,‘points1’,‘points2’])
# agrupar las filas según la columna de nombre y devolver la suma de valores en cada grupo para todas las columnas
imprimir(análisis.groupby(‘nombre’).suma())
Producción
identificación puntos3 puntos1 puntos2
nombre
sahaja 20 120 1 67
Siva 63 900 520 168
Sravan 115 1720 229 82
suriam 66 502 121 57
Explicación
Así que hay 4 grupos en la columna ‘nombre’. Para cada grupo, se devuelve la suma de id, puntos3, puntos1 y puntos2.
Conclusión
Tratamos de enseñarle cómo calcular la suma a través de DataFrames usando el método pandas sum(). Hemos discutido la suma de valores por filas y por columnas en los ejemplos de esta publicación. Además, aprendió cómo agregar columnas condicionalmente y cómo sumar los valores después de agrupar la columna del DataFrame. Ahora, puede sumar las columnas del DataFrame juntas o sumar los valores dentro de la columna del DataFrame usted mismo.