Ottieni la colonna della somma dei pandas

Asad Riaz 18 luglio 2021
  1. Metodo per ottenere la somma dei pandas colonna DataFrame
  2. Somma cumulativa con groupby
  3. Metodo per ottenere la somma delle colonne in base alla condizione di altri valori di colonna
Ottieni la colonna della somma dei pandas

Introdurremo come ottenere la somma della colonna del dataframe dei pandas. Include metodi come il calcolo della somma cumulativa con groupby e la somma dei DataFrame delle colonne in base al condizionale di altri valori di colonna.

Metodo per ottenere la somma dei pandas colonna DataFrame

Per prima cosa, creiamo un array casuale usando la libreria NumPy e poi otteniamo la somma di ogni colonna usando la funzione 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)

Il metodo Pandas DataFrame sum() somma la colonna Pandas.

Se esegui questo codice, otterrai l’output come segue.

   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

Somma cumulativa con groupby

Possiamo ottenere la somma cumulativa dei Pandas utilizzando il metodo groupby. Considera le seguenti colonne DataFrame con Data, Fruit e 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],
    }
)

Se vogliamo calcolare la somma cumulativa di Sale per Fruit e per ogni data, possiamo fare:

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())

Dopo aver eseguito i codici sopra, otterremo il seguente output, che mostra la somma cumulativa di Fruit per ogni data:

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

Metodo per ottenere la somma delle colonne in base alla condizione di altri valori di colonna

Questo metodo fornisce funzionalità per ottenere la somma se la condizione data è True e sostituire la somma con il valore dato se la condizione è False. Considera il codice seguente,

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)

Nel codice sopra, aggiungiamo la nuova colonna sum a DataFrame. L’elemento sum è la somma delle prime due colonne ['x','y'] se ['x'] è maggiore di 1, altrimenti sostituiamo sum con 0.

Dopo aver eseguito il codice, otterremo il seguente output (i valori potrebbero differire nel tuo 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

Articolo correlato - Pandas DataFrame Column