Cómo obtener la suma de la columna de Pandas
-
Método para obtener la suma de la columna Pandas
DataFrame
-
Suma acumulada con
groupby
- Método para obtener la suma de columnas basado en el condicional de otra columna Valores
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