Pandas DataFrame DataFrame.sum() Função

Suraj Joshi 30 janeiro 2023
  1. A sintaxe de pandas.DataFrame.sum():
  2. Códigos de exemplo: DataFrame.sum() Método para calcular a soma ao longo do eixo da coluna
  3. Códigos de exemplo: DataFrame.sum() Método para encontrar a soma ao longo do eixo da linha
  4. Códigos de exemplo: DataFrame.sum() Método para encontrar a soma Ignorando os valores NaN
  5. Códigos de exemplo: Definir min_count em DataFrame.sum() Método
Pandas DataFrame DataFrame.sum() Função

A função Python Pandas DataFrame.sum() tem por função calcular a soma dos valores do objecto DataFrame sobre o eixo especificado.

A sintaxe de pandas.DataFrame.sum():

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

Parâmetros

axis encontrar soma ao longo da linha (axis=0) ou coluna (axis=1)
skipna Booleano. Excluir valores NaN (skipna=True) ou incluir valores NaN (skipna=False)
level Conte com um nível particular se o eixo for MultiIndex.
numeric_only Booleano. Para colunas numeric_only=True, incluir apenas colunas float, int, e boolean.
min_count Inteiro. Número mínimo de valores non-NaN para calcular a soma. Se esta condição não for satisfeita, a soma será non-naN.
**kwargs Argumentos adicionais de palavras-chave para a função.

Devolver

Se o level não for especificado, devolver Series da soma dos valores para o eixo solicitado, ou devolver DataFrame dos valores da soma.

Códigos de exemplo: DataFrame.sum() Método para calcular a soma ao longo do eixo da coluna

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)

Resultado:

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

Calcula a soma para todas as colunas X, Y, e Z e finalmente devolve um objecto Series com a soma de cada coluna.

Para encontrar a soma de uma determinada coluna de DataFrame em Pandas, é necessário chamar a função sum() apenas para essa coluna.

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)

Resultado:

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

Apenas dá a soma dos valores da coluna Z de DataFrame.

Códigos de exemplo: DataFrame.sum() Método para encontrar a soma ao longo do eixo da linha

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)

Resultado:

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

Calcula a soma para todas as filas e finalmente devolve um objecto Series com a soma de cada fila.

Para encontrar a soma de uma determinada linha de DataFrame em Pandas, é necessário chamar a função sum() apenas para essa linha específica.


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)

Resultado:

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

Apenas dá a soma dos valores da 3ª linha de DataFrame.

Utilize o método iloc para seleccionar linhas com base no índice.

Códigos de exemplo: DataFrame.sum() Método para encontrar a soma Ignorando os valores NaN

Utilizar o valor padrão do parâmetro skipna, isto é, skipna=True para encontrar a soma de DataFrame ao longo do eixo especificado, ignorando os valores 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)

Resultado:

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 definir skipna=True, obterá valores NaN de somas se o DataFrame tiver valores 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)

Resultado:

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

Aqui, obtém-se o valor NaN para a soma das colunas X e Y, uma vez que ambas têm os valores NaN nelas.

Códigos de exemplo: Definir min_count em DataFrame.sum() Método

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)

Resultado:

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

Aqui, obtém-se o valor NaN para a soma da coluna Y como a coluna Y tem apenas valores 3 não NaN, que é inferior ao valor do parâmetro min_count.

Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn

Artigo relacionado - Pandas DataFrame