Skip to content

Dans pandas, vous pouvez calculer la somme cumulรฉe et le produit ร  l’aide des mรฉthodes ๐œโ€Œ๐ฎโ€Œ๐ฆโ€Œ๐ฌโ€Œ๐ฎโ€Œ๐ฆโ€Œ() et ๐œโ€Œ๐ฎโ€Œ๐ฆโ€Œ๐ฉโ€Œ๐ซโ€Œ๐จโ€Œ๐โ€Œ() pour ๐ž๐ซ๐ข๐ž๐ฌ โ€‹โ€‹โ€‹โ€‹.

De plus, les mรฉthodes ๐œโ€Œ๐ฎโ€Œ๐ฆโ€Œ๐ฆโ€Œ๐šโ€Œ๐ฑโ€Œ() et ๐œโ€Œ๐ฎโ€Œ๐ฆโ€Œ๐ฆ๐ขโ€Œ๐งโ€Œ() sont disponibles pour calculer le maximum et le minimum cumulรฉs.

Cet article couvre les sujets suivants :

  • Somme cumulรฉe et produit : ๐œโ€Œ๐ฎโ€Œ๐ฆโ€Œ๐ฌโ€Œ๐ฎโ€Œ๐ฆโ€Œ() , ๐œโ€Œ๐ฎโ€Œ๐ฆโ€Œ๐ฉโ€Œ๐ซโ€Œ๐จโ€Œ๐โ€Œ()
    • Utilisation de la base
    • Gestion des valeurs manquantes ( N๐šโ€ŒN ) : ๐ฌโ€Œ๐คโ€Œ๐ขโ€Œ๐ฉโ€Œ๐งโ€Œ๐šโ€Œ
  • Cumulรฉs maximum et minimum : ๐œโ€Œ๐ฎโ€Œ๐ฆโ€Œ๐ฆโ€Œ๐šโ€Œ๐ฑโ€Œ() , ๐œโ€Œ๐ฎโ€Œ๐ฆโ€Œ๐ฆโ€Œ๐ขโ€Œ๐งโ€Œ()

Vous pouvez รฉgalement utiliser la bibliothรจque standard Python itertools et les fonctions/mรฉthodes NumPy pour calculer la somme et le produit cumulรฉs. Avec itertools, vous pouvez appliquer n’importe quelle fonction de maniรจre cumulative.

Somme cumulรฉe et produit : ๐œโ€Œ๐ฎโ€Œ๐ฆโ€Œ๐ฌโ€Œ๐ฎโ€Œ๐ฆโ€Œ() , ๐œโ€Œ๐ฎโ€Œ๐ฆโ€Œ๐ฉโ€Œ๐ซโ€Œ๐จโ€Œ๐โ€Œ()

Utilisation de la base

Considรฉrez l’exemple suivant ๐ฉโ€Œ๐šโ€Œ๐งโ€Œ๐โ€Œ๐šโ€Œ๐ฌโ€Œ.D๐šโ€Œ๐ญโ€Œ๐šโ€ŒF๐ซโ€Œ๐šโ€Œ๐ฆโ€Œ๐žโ€Œ :

import pandas as pd print(pd.__version__) # 1.0.5 df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}, index=['X', 'Y', 'Z']) print(df) # A B # X 1 4 # Y 2 5 # Z 3 6 

Par dรฉfaut, ๐œโ€Œ๐ฎโ€Œ๐ฆโ€Œ๐ฌโ€Œ๐ฎโ€Œ๐ฆโ€Œ() et ๐œโ€Œ๐ฎโ€Œ๐ฆโ€Œ๐ฉโ€Œ๐ซโ€Œ๐จโ€Œ๐โ€Œ() calculent la somme cumulรฉe et le produit par colonne. Pour effectuer des calculs par ligne, dรฉfinissant l’argument ๐šโ€Œ๐ฑโ€Œ๐ขโ€Œ๐ฌโ€Œ sur 1 .

print(df.cumsum()) # A B # X 1 4 # Y 3 9 # Z 6 15 print(df.cumsum(axis=1)) # A B # X 1 5 # Y 2 7 # Z 3 9 

print(df.cumprod()) # A B # X 1 4 # Y 2 20 # Z 6 120 print(df.cumprod(axis=1)) # A B # X 1 4 # Y 2 10 # Z 3 18 

๐ฉโ€Œ๐šโ€Œ๐งโ€Œ๐โ€Œ๐šโ€Œ๐ฌโ€Œ.S๐žโ€Œ๐ซโ€Œ๐ขโ€Œ๐žโ€Œ๐ฌโ€Œfournit รฉgalement les mรฉthodes ๐œโ€Œ๐ฎโ€Œ๐ฆโ€Œ๐ฌโ€Œ๐ฎโ€Œ๐ฆโ€Œ() et ๐œโ€Œ๐ฎโ€Œ๐ฆโ€Œ๐ฉโ€Œ๐ซโ€Œ๐จโ€Œ๐โ€Œ() .

print(df['B']) # X 4 # Y 5 # Z 6 # Name: B, dtype: int64 print(type(df['B'])) # <class 'pandas.core.series.Series'> print(df['B'].cumsum()) # X 4 # Y 9 # Z 15 # Name: B, dtype: int64 print(df['B'].cumprod()) # X 4 # Y 20 # Z 120 # Name: B, dtype: int64 

Gestion des valeurs manquantes ( N๐šโ€ŒN ) : ๐ฌโ€Œ๐คโ€Œ๐ขโ€Œ๐ฉโ€Œ๐งโ€Œ๐šโ€Œ

Considรฉrons un ๐ฉโ€Œ๐šโ€Œ๐งโ€Œ๐โ€Œ๐šโ€Œ๐ฌโ€Œ.D๐šโ€Œ๐ญโ€Œ๐šโ€ŒF๐ซโ€Œ๐šโ€Œ๐ฆโ€Œ๐žโ€Œ contenant des valeurs manquantes ( N๐šโ€ŒN ) :

df_nan = pd.DataFrame({'A': [1, 2, 3], 'B': [4, float('nan'), 6]}, index=['X', 'Y', 'Z']) print(df_nan) # A B # X 1 4.0 # Y 2 NaN # Z 3 6.0 

Par dรฉfaut, les valeurs manquantes ( N๐šโ€ŒN ) sont ignorรฉes.

print(df_nan.cumsum()) # A B # X 1 4.0 # Y 3 NaN # Z 6 10.0 

Si vous dรฉfinissez l’argument ๐ฌโ€Œ๐คโ€Œ๐ขโ€Œ๐ฉโ€Œ๐งโ€Œ๐šโ€Œ sur F๐šโ€Œ๐ฅโ€Œ๐ฌโ€Œ๐žโ€Œ , les valeurs manquantes ( N๐šโ€ŒN ) sont รฉgalement utilisรฉes. ร‰tant donnรฉ que les opรฉrations arithmรฉtiques avec N๐šโ€ŒN donnent N๐šโ€ŒN , tous les รฉlรฉments suivants un N๐šโ€ŒN deviennent N๐šโ€ŒN .

print(float('nan') + 4) # nan print(df_nan.cumsum(skipna=False)) # A B # X 1 4.0 # Y 3 NaN # Z 6 NaN 

Ceci s’applique รฉgalement ร  ๐œโ€Œ๐ฎโ€Œ๐ฆโ€Œ๐ฉโ€Œ๐ซโ€Œ๐จโ€Œ๐โ€Œ() .

print(df_nan.cumprod()) # A B # X 1 4.0 # Y 2 NaN # Z 6 24.0 print(df_nan.cumprod(skipna=False)) # A B # X 1 4.0 # Y 2 NaN # Z 6 NaN 

Le mรชme comportement est observรฉ pour ๐ฉโ€Œ๐šโ€Œ๐งโ€Œ๐โ€Œ๐šโ€Œ๐ฌโ€Œ.S๐žโ€Œ๐ซโ€Œ๐ขโ€Œ๐žโ€Œ๐ฌโ€Œ , mais les exemples ne sont pas prรฉsentรฉs ici par souci de concision.

Cumulรฉs maximum et minimum : ๐œโ€Œ๐ฎโ€Œ๐ฆโ€Œ๐ฆโ€Œ๐šโ€Œ๐ฑโ€Œ() , ๐œโ€Œ๐ฎโ€Œ๐ฆโ€Œ๐ฆโ€Œ๐ขโ€Œ๐งโ€Œ()

Il existe รฉgalement les mรฉthodes ๐œโ€Œ๐ฎโ€Œ๐ฆโ€Œ๐ฆโ€Œ๐šโ€Œ๐ฑโ€Œ() et ๐œโ€Œ๐ฎโ€Œ๐ฆโ€Œ๐ฆ๐ขโ€Œ๐งโ€Œ() pour calculer les valeurs maximales et minimales cumulรฉes. Elles sont utiles, par exemple, pour calculer la valeur maximale ou minimale jusqu’ร  un certain point dans les donnรฉes de sรฉries chronologiques.

L’utilisation est la mรชme que pour ๐œโ€Œ๐ฎโ€Œ๐ฆโ€Œ๐ฌโ€Œ๐ฎโ€Œ๐ฆโ€Œ() et ๐œโ€Œ๐ฎโ€Œ๐ฆโ€Œ๐ฉโ€Œ๐ซโ€Œ๐จโ€Œ๐โ€Œ() . Les calculs sont effectuรฉs par colonne par dรฉfaut et par ligne si ๐šโ€Œ๐ฑโ€Œ๐ขโ€Œ๐ฌโ€Œ=1 .

df2 = pd.DataFrame({'A': [1, 4, 2], 'B': [6, 3, 5]}, index=['X', 'Y', 'Z']) print(df2) # A B # X 1 6 # Y 4 3 # Z 2 5 print(df2.cummax()) # A B # X 1 6 # Y 4 6 # Z 4 6 print(df2.cummax(axis=1)) # A B # X 1 6 # Y 4 4 # Z 2 5 print(df2.cummin()) # A B # X 1 6 # Y 1 3 # Z 1 3 print(df2.cummin(axis=1)) # A B # X 1 1 # Y 4 3 # Z 2 2 

La gestion des valeurs manquantes ( N๐šโ€ŒN ) est รฉgalement la mรชme que pour ๐œโ€Œ๐ฎโ€Œ๐ฆโ€Œ๐ฌโ€Œ๐ฎโ€Œ๐ฆโ€Œ() et ๐œโ€Œ๐ฎโ€Œ๐ฆโ€Œ๐ฉโ€Œ๐ซโ€Œ๐จโ€Œ๐โ€Œ() , et l’argument ๐ฌโ€Œ๐คโ€Œ๐ขโ€Œ๐ฉโ€Œ๐งโ€Œ๐šโ€Œ peut รชtre spรฉcifiรฉ.

df2_nan = pd.DataFrame({'A': [1, 4, 2], 'B': [6, float('nan'), 5]}, index=['X', 'Y', 'Z']) print(df2_nan) # A B # X 1 6.0 # Y 4 NaN # Z 2 5.0 print(df2_nan.cummax()) # A B # X 1 6.0 # Y 4 NaN # Z 4 6.0 print(df2_nan.cummax(skipna=False)) # A B # X 1 6.0 # Y 4 NaN # Z 4 NaN print(df2_nan.cummin()) # A B # X 1 6.0 # Y 1 NaN # Z 1 5.0 print(df2_nan.cummin(skipna=False)) # A B # X 1 6.0 # Y 1 NaN # Z 1 NaN 

๐ฉโ€Œ๐šโ€Œ๐งโ€Œ๐โ€Œ๐šโ€Œ๐ฌโ€Œ.S๐žโ€Œ๐ซโ€Œ๐ขโ€Œ๐žโ€Œ๐ฌโ€Œ prend รฉgalement en charge les mรฉthodes ๐œโ€Œ๐ฎโ€Œ๐ฆโ€Œ๐ฆโ€Œ๐šโ€Œ๐ฑโ€Œ() et ๐œโ€Œ๐ฎโ€Œ๐ฆโ€Œ๐ฆโ€Œ๐ขโ€Œ๐งโ€Œ() , mais les exemples sont omis par souci de concision.