Funzione Pandas DataFrame DataFrame.sum()

Suraj Joshi 30 gennaio 2023
  1. Sintassi di pandas.DataFrame.sum():
  2. Codici di esempio: Metodo DataFrame.sum() per calcolare la somma lungo l’asse delle colonne
  3. Codici di esempio: Metodo DataFrame.sum() per trovare la somma lungo l’asse di riga
  4. Codici di esempio: Metodo DataFrame.sum() per trovare la somma ignorando i valori NaN
  5. Codici di esempio: imposta min_count nel metodo DataFrame.sum()
Funzione Pandas DataFrame DataFrame.sum()

La funzione del Python Pandas DataFrame.sum() è calcolare la somma dei valori dell’oggetto DataFrame sull’asse specificato.

Sintassi di pandas.DataFrame.sum():

DataFrame.sum(
    axis=None, skipna=None, level=None, numeric_only=None, min_count=0, **kwargs
)

Parametri

axis trova la somma lungo la riga (axis = 0) o la colonna (axis = 1)
skipna Booleano. Escludi i valori NaN (skipna=True) o includi i valori NaN (skipna=False)
level Conta insieme a un livello particolare se l’asse è MultiIndex
numeric_only Booleano. Per numeric_only=True, includi solo le colonne float, int e boolean
min_count Numero intero. Numero minimo di valori non-NaN per calcolare la somma. Se questa condizione non è soddisfatta, la somma sarà NaN
**kwargs Argomenti di parole chiave aggiuntivi per la funzione.

Ritorno

Se il livello non è specificato, restituisce Series della somma dei valori per l’asse richiesto, altrimenti restituisce DataFrame dei valori della somma.

Codici di esempio: Metodo DataFrame.sum() per calcolare la somma lungo l’asse delle colonne

import pandas as pd

df = pd.DataFrame({'X': 
                   [1,2,3,4,5], 
                   'Y': [1, 2, 3,4,5], 
                   'Z': [3,4,5,6,3]})
print("DataFrame:")
print(df)

sums=df.sum()
print("Column-wise Sum:")
print(sums)

Produzione:

DataFrame:
   X  Y  Z
0  1  1  3
1  2  2  4
2  3  3  5
3  4  4  6
4  5  5  3
Column-wise Sum:
X    15
Y    15
Z    21
dtype: int64

Calcola la somma di tutte le colonne X, Y e Z e infine restituisce un oggetto Series con la somma di ciascuna colonna.

Per trovare la somma di una particolare colonna di DataFrame in Pandas, devi chiamare la funzione sum() solo per quella colonna.

import pandas as pd

df = pd.DataFrame({'X': 
                   [1,2,3,4,5], 
                   'Y': [1, 2, 3,4,5], 
                   'Z': [3,4,5,6,3]})
print("DataFrame:")
print(df)

sums=df["Z"].sum()
print("Sum of values of Z-column:")
print(sums)

Produzione:

DataFrame:
   X  Y  Z
0  1  1  3
1  2  2  4
2  3  3  5
3  4  4  6
4  5  5  3
Sum of values of Z-column:
21

Fornisce solo la somma dei valori della colonna Z di DataFrame.

Codici di esempio: Metodo DataFrame.sum() per trovare la somma lungo l’asse di riga

import pandas as pd

df = pd.DataFrame({'X': 
                   [1,2,3,4,5], 
                   'Y': [1, 2, 3,4,5], 
                   'Z': [3,4,5,6,3]})
print("DataFrame:")
print(df)

sums=df.sum(axis=1)
print("Row-wise sum:")
print(sums)

Produzione:

DataFrame:
   X  Y  Z
0  1  1  3
1  2  2  4
2  3  3  5
3  4  4  6
4  5  5  3
Row-wise sum:
0     5
1     8
2    11
3    14
4    13
dtype: int64

Calcola la somma di tutte le righe e infine restituisce un oggetto Series con la somma di ogni riga.

Per trovare la somma di una particolare riga di DataFrame in Pandas, è necessario chiamare la funzione sum() solo per quella specifica riga.


import pandas as pd

df = pd.DataFrame({'X': 
                   [1,2,3,4,5], 
                   'Y': [1, 2, 3,4,5], 
                   'Z': [3,4,5,6,3]})
print("DataFrame:")
print(df)

sum_3=df.iloc[[2]].sum(axis=1)
print("Sum of values of 3rd Row:")
print(sum_3)

Produzione:

DataFrame:
   X  Y  Z
0  1  1  3
1  2  2  4
2  3  3  5
3  4  4  6
4  5  5  3
Sum of values of 3rd Row:
2    11
dtype: int64

Fornisce solo la somma dei valori della 3a riga di DataFrame.

Usa il metodo iloc per selezionare le righe in base all’indice.

Codici di esempio: Metodo DataFrame.sum() per trovare la somma ignorando i valori NaN

Usa il valore predefinito del parametro skipna cioè skipna=True per trovare la somma di DataFrame lungo l’asse specificato, ignorando i valori NaN.

import pandas as pd
df = pd.DataFrame({'X': 
                   [1,None,3,4,5], 
                   'Y': [1, None, 3,None,5], 
                   'Z': [3,4,5,6,3]})
print("DataFrame:")
print(df)

sums=df.sum()
print("Column-wise Sum:")
print(sums)

Produzione:

DataFrame:
     X    Y  Z
0  1.0  1.0  3
1  NaN  NaN  4
2  3.0  3.0  5
3  4.0  NaN  6
4  5.0  5.0  3
Column-wise Sum:
X    13.0
Y     9.0
Z    21.0
dtype: float64

Se imposti skipna=True, otterrai valori NaN di somme se il DataFrame ha valori NaN.


import pandas as pd

df = pd.DataFrame({'X': 
                   [1,None,3,4,5], 
                   'Y': [1, None, 3,None,5], 
                   'Z': [3,4,5,6,3]})
print("DataFrame:")
print(df)

sums=df.sum(skipna=False)
print("Column-wise Sum:")
print(sums)

Produzione:

DataFrame:
     X    Y  Z
0  1.0  1.0  3
1  NaN  NaN  4
2  3.0  3.0  5
3  4.0  NaN  6
4  5.0  5.0  3
Column-wise Sum:
X     NaN
Y     NaN
Z    21.0
dtype: float64

Qui, ottieni il valore NaN per la somma delle colonne X e Y poiché entrambe hanno i valori NaN.

Codici di esempio: imposta min_count nel metodo DataFrame.sum()

import pandas as pd

df = pd.DataFrame({'X': 
                   [1,None,3,4,5], 
                   'Y': [1, None, 3,None,5], 
                   'Z': [3,4,5,6,3]})
print("DataFrame:")
print(df)

sums=df.sum(min_count=4)
print("Column-wise Sum:")
print(sums)

Produzione:

DataFrame:
     X    Y  Z
0  1.0  1.0  3
1  NaN  NaN  4
2  3.0  3.0  5
3  4.0  NaN  6
4  5.0  5.0  3
Column-wise Sum:
X    13.0
Y     NaN
Z    21.0
dtype: float64

Qui, ottieni il valore NaN per la somma della colonna Y poiché la colonna Y ha solo valori 3 non NaN, che è inferiore al valore del parametro min_count.

Autore: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Articolo correlato - Pandas DataFrame