Cómo obtener la suma de la columna de Pandas

Asad Riaz 30 enero 2023
  1. Método para obtener la suma de la columna Pandas DataFrame
  2. Suma acumulada con groupby
  3. Método para obtener la suma de columnas basado en el condicional de otra columna Valores
Cómo obtener la suma de la columna de Pandas

Introduciremos cómo obtener la suma de la columna Pandas DataFrame, métodos como el cálculo de la suma acumulativa con groupby, y la suma de las columnas del dataframe basada en el condicional de otros valores de columna.

Método para obtener la suma de la columna Pandas DataFrame

Primero, creamos un array aleatorio usando una biblioteca NumPy y luego obtenemos la suma de cada columna usando la función sum().

import numpy as np
import pandas as pd

df = pd.DataFrame(np.random.randint(0, 10, size=(10, 4)), columns=list("1234"))
print(df)
Total = df["1"].sum()
print("Column 1 sum:", Total)
Total = df["2"].sum()
print("Column 2 sum:", Total)
Total = df["3"].sum()
print("Column 3 sum:", Total)
Total = df["4"].sum()
print("Column 4 sum:", Total)

Si ejecutas este código obtendrás la salida de la siguiente manera (los valores pueden ser diferentes en tu caso),

   1  2  3  4
0  2  2  3  8
1  9  4  3  1
2  8  5  6  0
3  9  5  7  4
4  2  7  3  7
5  9  4  1  3
6  6  7  7  3
7  0  4  2  8
8  0  6  6  4
9  5  8  7  2
Column 1 sum: 50
Column 2 sum: 52
Column 3 sum: 45
Column 4 sum: 40

Suma acumulada con groupby

Podemos obtener la suma acumulada usando el método groupby. Considera el siguiente DataFrame con las columnas Date, Fruit y Sale:

import pandas as pd

df = pd.DataFrame(
    {
        "Date": ["08/09/2018", "10/09/2018", "08/09/2018", "10/09/2018"],
        "Fruit": ["Apple", "Apple", "Banana", "Banana"],
        "Sale": [34, 12, 22, 27],
    }
)

Si queremos calcular la suma acumulativa de Venta por Fruta y por cada fecha podemos hacer:

import pandas as pd

df = pd.DataFrame(
    {
        "Date": ["08/09/2018", "10/09/2018", "08/09/2018", "10/09/2018"],
        "Fruit": ["Apple", "Apple", "Banana", "Banana"],
        "Sale": [34, 12, 22, 27],
    }
)

print(df.groupby(by=["Fruit", "Date"]).sum().groupby(level=[0]).cumsum())

Después de ejecutar los códigos anteriores obtendremos la siguiente salida, que muestra la suma acumulativa de fruta para cada fecha:

Fruit  Date         Sale
Apple  08/09/2018    34
       10/09/2018    46
Banana 08/09/2018    22
       10/09/2018    49
        

Método para obtener la suma de columnas basado en el condicional de otra columna Valores

Este método proporciona la funcionalidad de obtener la suma si la condición dada es True y reemplazar la suma con el valor dado si la condición es False. Considera el siguiente código,

import numpy as np
import pandas as pd

df = pd.DataFrame(np.random.randn(5, 3), columns=list("xyz"))

df["sum"] = df.loc[df["x"] > 0, ["x", "y"]].sum(axis=1)

df["sum"].fillna(0, inplace=True)
print(df)

En el código anterior, añadimos una nueva columna sum a DataFrame. El elemento sum es la suma de las dos primeras columnas ['x','y'] si x es mayor que 1, de lo contrario reemplazamos la sum por 0.

Después de ejecutar el código obtendremos la siguiente salida (los valores pueden ser cambiados en tu caso).

          x         y         z       sum
0 -1.067619  1.053494  0.179490  0.000000
1 -0.349935  0.531465 -1.350914  0.000000
2 -1.650904  1.534314  1.773287  0.000000
3  2.486195  0.800890 -0.132991  3.287085
4  1.581747 -0.667217 -0.182038  0.914530

Artículo relacionado - Pandas DataFrame Column