Mis a jour le 2024-06-24, 21:29

Opérations sur les Dataframes

Lors des opérations sur les dataframes, les noms des lignes et des colonnes sont automatiquement alignés :
df1 = pandas.DataFrame({'A': [1, 2], 'B': [3, 4]}, index = ['a', 'c'])
df2 = pandas.DataFrame({'A': [1, 2], 'C': [7, 5]}, index = ['b', 'c'])
  
df1 + df2 donne :
     A   B   C
a  NaN NaN NaN
b  NaN NaN NaN
c  4.0 NaN NaN
  
Autre exemple : si df1 = pandas.DataFrame({'a': [1, 3, 4], 'b': [5, 3, 1]}, columns = ['a', 'b']); df2 = pandas.DataFrame({'b': [5, 2, 0], 'a': [1, 2, 8]}, columns = ['b', 'a'], index = [2, 1, 0]); alors df1 + df2 donne :
   a  b
0  9  5
1  5  5
2  5  6
  
Opérations possibles :
Opérations sur tout le dataframe avec une ligne ou une colonne :
Pour enlever la moyenne d'une colonne ou d'une ligne à un dataframe : on peut faire le même genre d'opérations avec sub, mul, div, pow et mod
df2 = 100 * df / df.sum() : si df est un dataframe numérique avec étiquettes de lignes et colonnes avec des comptes, calcule les pourcentages par rapport au total pour chaque colonne.
Pour normaliser un dataframe pour que la somme de chaque colonne soit identique : df2 = df.mul(df.sum.mean() / df.sum(), axis = 1)
Trouver les valeurs uniques de plusieurs colonnes : df.groupby(['A', 'B']).size().reset_index().loc[:, ['A', 'B']]
df.groupby(['A', 'B'], as_index = False).size() : les colonnes A et B ne terminent pas dans l'index.

Copyright python-simple.com
programmer en python, tutoriel python, graphes en python, Aymeric Duclert