Comment additionner toutes les lignes d'une dataframe avec pandas en python ?

05 septembre 2021    /    Viewed: 141    /    Comments: 0    /    Edit


Exemples de comment additionner toutes les lignes d'une dataframe avec pandas en python:

Créer un dataframe avec pandas

Créons d'abord une dataframe avec des pandas :

import pandas as pd
import numpy as np

data = np.random.randint(5, size=(3,3))

df = pd.DataFrame(data=data,columns=['A','B','C'])

donne par exemple

   A  B  C
0  0  2  0
1  2  3  0
2  3  1  2

Additionner toutes les lignes d'une dataframe avec pandas

Pour additionner toutes les lignes avec des pandas, une solution consiste à utiliser pandas.DataFrame.sum:

df_sum = df.sum(axis=0)

donne

A    5
B    6
C    2

Notez que df_sum est une série ici :

print(type(df_sum))

donne

<class 'pandas.core.series.Series'>

Sauvegarder le résultat de l'addition dans une nouvelle ligne

Pour enregistrer le résultat dans une nouvelle ligne, une solution consiste à changer df_sum d'une série en une base de données :

df_sum = df.sum(axis=0).to_frame()

transposez-le:

df_sum = df_sum.T

print(df_sum)

donne

   A  B  C
0  5  6  2

Remarque : nous pouvons également modifier le nom de l'index :

df_sum.index = ['Total']

donne

       A  B  C
Total  5  6  2

Maintenant, nous pouvons ajouter le résultat de la somme dans notre dataframe source :

df = pd.concat([df_sum,df], ignore_index=False)

donne ici

       A  B  C
Total  5  6  2
0      0  2  0
1      2  3  0
2      3  1  2

ou si nous voulons le total à la de fin :

df = pd.concat([df,df_sum], ignore_index=False)

donne alors

       A  B  C
0      0  2  0
1      2  3  0
2      3  1  2
Total  5  6  2

Comment ignorer la première ou la dernière ligne

Exemples de comment ignorer la première ou la dernière ligne si nécessaire :

import pandas as pd
import numpy as np

data = np.random.randint(5, size=(3,3))

df = pd.DataFrame(data=data,columns=['A','B','C'])

donne

   A  B  C
0  0  4  2
1  4  1  0
2  2  0  1

Ignorer la première ligne :

df.iloc[1:].sum(axis=0)

donne

A    6
B    1
C    1

Ignorer la dernière ligne :

df.iloc[:-1].sum(axis=0)

donne

    A    4
B    5
C    2
dtype: int64

Références


Card image cap
profile-image
Daidalos

Hi, I am Ben.

I have developed this web site from scratch with Django to share with everyone my notes. If you have any ideas or suggestions to improve the site, let me know ! (you can contact me using the form in the welcome page). Thanks!