Comment obtenir la somme de la colonne Pandas

  1. Méthode pour obtenir la somme des colonnes de Pandas DataFrame
  2. Somme cumulée avec groupby
  3. Méthode pour obtenir la somme des colonnes basée sur les valeurs conditionnelles des autres colonnes

Nous allons présenter comment obtenir la somme des colonnes d’un Pandas DataFrame, des méthodes comme le calcul de la somme cumulative avec groupby, et la somme des colonnes d’un Pandas DataFrame basée sur les valeurs conditionnelles des autres colonnes.

Méthode pour obtenir la somme des colonnes de Pandas DataFrame

Tout d’abord, nous créons un tableau aléatoire en utilisant une bibliothèque numpy et ensuite nous obtenons la somme de chaque colonne en utilisant la fonction 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 vous exécutez ce code, vous obtiendrez la sortie suivante (les valeurs peuvent être différentes dans votre cas),

   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

Somme cumulée avec groupby

Nous pouvons obtenir la somme cumulative en utilisant la méthode groupby. Considérons la Dataframe suivante avec les colonnes Date, Fruit et 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 nous voulons calculer la somme cumulée des ventes par fruit et pour chaque date, nous pouvons le faire:

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

Après avoir exécuté les codes ci-dessus, nous obtiendrons le résultat suivant, qui indique la somme cumulée des fruits pour chaque date:

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

Méthode pour obtenir la somme des colonnes basée sur les valeurs conditionnelles des autres colonnes

Cette méthode permet d’obtenir la somme si la condition donnée est True et de remplacer la somme par une valeur donnée si la condition est False. Considérons le code suivant,

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)

Dans le code ci-dessus, nous ajoutons une nouvelle colonne sum à Dataframe. L’élément sum est la somme des deux premières colonnes ['x', 'y'] si ['x'] est supérieur à 1, sinon nous remplaçons sum par 0.

Après avoir exécuté le code, nous obtiendrons la sortie suivante (les valeurs peuvent être modifiées dans votre cas).

          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