Skip to content

Cet article explique comment parcourir un ๐ฉโ€Œ๐šโ€Œ๐งโ€Œ๐โ€Œ๐šโ€Œ๐ฌโ€Œ.D๐šโ€Œ๐ญโ€Œ๐šโ€ŒF๐ซโ€Œ๐šโ€Œ๐ฆโ€Œ๐žโ€Œ avec une boucle ๐Ÿโ€Œ๐จโ€Œ๐ซโ€Œ .

Lorsque vous effectuez simplement une itรฉration sur un D๐šโ€Œ๐ญโ€Œ๐šโ€ŒF๐ซโ€Œ๐šโ€Œ๐ฆโ€Œ๐žโ€Œ , il renvoie les noms des colonnes ; Cependant, vous pouvez parcourir ses colonnes ou ses lignes ร  l’aide de mรฉthodes telles que ๐ขโ€Œ๐ญโ€Œ๐žโ€Œ๐ฆโ€Œ๐ฌโ€Œ() (anciennement ๐ขโ€Œ๐ญโ€Œ๐žโ€Œ๐ซโ€Œ๐ขโ€Œ๐ญโ€Œ๐žโ€Œ๐ฆโ€Œ๐ฌโ€Œ() ), . .

La derniรจre partie de cet article aborde รฉgalement les approches permettant de traiter un D๐šโ€Œ๐ญโ€Œ๐šโ€ŒF๐ซโ€Œ๐šโ€Œ๐ฆโ€Œ๐žโ€Œ sans boucle ๐Ÿโ€Œ๐จโ€Œ๐ซโ€Œ .

Contenu

Pour plus de dรฉtails sur les boucles ๐Ÿโ€Œ๐จโ€Œ๐ซโ€Œ en Python, consultez l’article suivant.

La version pandas utilisรฉe dans cet article est la suivante. Notez que les fonctionnalitรฉs peuvent varier selon les versions. Le D๐šโ€Œ๐ญโ€Œ๐šโ€ŒF๐ซโ€Œ๐šโ€Œ๐ฆโ€Œ๐žโ€Œ suivant est utilisรฉ comme exemple.

import pandas as pd print(pd.__version__) # 2.1.4 df = pd.DataFrame({'age': [24, 42], 'state': ['NY', 'CA'], 'point': [64, 92]}, index=['Alice', 'Bob']) print(df) # age state point # Alice 24 NY 64 # Bob 42 CA 92 

Itรฉrer sur un D๐šโ€Œ๐ญโ€Œ๐šโ€ŒF๐ซโ€Œ๐šโ€Œ๐ฆโ€Œ๐žโ€Œ

L’itรฉration directe sur un D๐šโ€Œ๐ญโ€Œ๐šโ€ŒF๐ซโ€Œ๐šโ€Œ๐ฆโ€Œ๐žโ€Œ avec une boucle ๐Ÿโ€Œ๐จโ€Œ๐ซโ€Œ extrait les noms de colonnes de maniรจre sรฉquentielle.

for column_name in df: print(column_name) # age # state # point 

Itรฉrer sur les colonnes d’un D๐šโ€Œ๐ญโ€Œ๐šโ€ŒF๐ซโ€Œ๐šโ€Œ๐ฆโ€Œ๐žโ€Œ : ๐ขโ€Œ๐ญโ€Œ๐žโ€Œ๐ฆโ€Œ๐ฌโ€Œ()๏ผˆanciennement ๐ขโ€Œ๐ญโ€Œ๐žโ€Œ๐ซโ€Œ๐ขโ€Œ๐ญโ€Œ๐žโ€Œ๐ฆโ€Œ๐ฌโ€Œ()๏ผ‰

La mรฉthode ๐ขโ€Œ๐ญโ€Œ๐žโ€Œ๐ฆโ€Œ๐ฌโ€Œ() itรจre sur les colonnes d’un D๐šโ€Œ๐ญโ€Œ๐šโ€ŒF๐ซโ€Œ๐šโ€Œ๐ฆโ€Œ๐žโ€Œ sous forme de paires (๐œโ€Œ๐จโ€Œ๐ฅโ€Œ๐ฎโ€Œ๐ฆโ€Œ๐งโ€Œ_๐งโ€Œ๐šโ€Œ๐ฆโ€Œ๐žโ€Œ, S๐žโ€Œ๐ซโ€Œ๐ขโ€Œ๐žโ€Œ๐ฌ) .

Vous pouvez extraire chaque valeur en spรฉcifiant l’รฉtiquette dans le S๐žโ€Œ๐ซโ€Œ๐ขโ€Œ๐žโ€Œ๐ฌโ€Œ .

for column_name, item in df.items(): print(column_name) print(type(item)) print(item['Alice'], item['Bob']) print('======') # age # <class 'pandas.core.series.Series'> # 24 42 # ====== # state # <class 'pandas.core.series.Series'> # NY CA # ====== # point # <class 'pandas.core.series.Series'> # 64 92 # ====== 

Notez que cette mรฉthode รฉtait auparavant nommรฉe ๐ขโ€Œ๐ญโ€Œ๐žโ€Œ๐ซโ€Œ๐ขโ€Œ๐ญโ€Œ๐žโ€Œ๐ฆโ€Œ๐ฌโ€Œ() , mais elle a รฉtรฉ modifiรฉe en ๐ขโ€Œ๐ญโ€Œ๐žโ€Œ๐ฆโ€Œ๐ฌโ€Œ() . ๐ขโ€Œ๐ญโ€Œ๐žโ€Œ๐ซโ€Œ๐ขโ€Œ๐ญโ€Œ๐žโ€Œ๐ฆโ€Œ๐ฌโ€Œ() a รฉtรฉ supprimรฉ dans la version 2.0 de pandas.

Itรฉrer sur les lignes d’un D๐šโ€Œ๐ญโ€Œ๐šโ€ŒF๐ซโ€Œ๐šโ€Œ๐ฆโ€Œ๐žโ€Œ : ๐ขโ€Œ๐ญโ€Œ๐žโ€Œ๐ซโ€Œ๐ซโ€Œ๐จโ€Œ๐ฐโ€Œ๐ฌโ€Œ() , ๐ขโ€Œ๐ญโ€Œ๐žโ€Œ๐ซโ€Œ๐ญโ€Œ๐ฎโ€Œ๐ฉโ€Œ๐ฅโ€Œ๐žโ€Œ๐ฌโ€Œ()

Vous pouvez utiliser les mรฉthodes ๐ขโ€Œ๐ญโ€Œ๐žโ€Œ๐ซโ€Œ๐ซโ€Œ๐จโ€Œ๐ฐโ€Œ๐ฌโ€Œ() et ๐ขโ€Œ๐ญโ€Œ๐žโ€Œ๐ซโ€Œ๐ญโ€Œ๐ฎโ€Œ๐ฉโ€Œ๐ฅโ€Œ๐žโ€Œ๐ฌโ€Œ() pour parcourir les lignes d’un D๐šโ€Œ๐ญโ€Œ๐šโ€ŒF๐ซโ€Œ๐šโ€Œ๐ฆโ€Œ๐žโ€Œ . ๐ขโ€Œ๐ญโ€Œ๐žโ€Œ๐ซโ€Œ๐ญโ€Œ๐ฎโ€Œ๐ฉโ€Œ๐ฅโ€Œ๐žโ€Œ๐ฌโ€Œ() est plus rapide que ๐ขโ€Œ๐ญโ€Œ๐žโ€Œ๐ซโ€Œ๐ซโ€Œ๐จโ€Œ๐ฐโ€Œ๐ฌโ€Œ() .

Si vous n’avez besoin que des valeurs d’une colonne spรฉcifique, il est encore plus rapide d’effectuer une itรฉration sur cette colonne individuellement, comme dรฉcrit ci-aprรจs. Les rรฉsultats d’une expรฉrience sur la vitesse de traitement sont prรฉsentรฉs ร  la fin.

๐ข๐ฅ๐ž๐ฌ๐ญ๐ž๐ซ๐ซ๐จ๐ง๐ญ()

La mรฉthode ๐ขโ€Œ๐ญโ€Œ๐žโ€Œ๐ซโ€Œ๐ซโ€Œ๐จโ€Œ๐ฐโ€Œ๐ฌโ€Œ() parcourt les lignes d’un D๐šโ€Œ๐ญโ€Œ๐šโ€ŒF๐ซโ€Œ๐šโ€Œ๐ฆโ€Œ๐žโ€Œ sous forme de paires (๐ขโ€Œ๐งโ€Œ๐โ€Œ๐žโ€Œ๐ฑโ€Œ, S๐žโ€Œ๐ซโ€Œ๐ขโ€Œ๐žโ€Œ๐ฌ) .

for index, row in df.iterrows(): print(index) print(type(row)) print(row['age'], row['state'], row['point']) print('======') # Alice # <class 'pandas.core.series.Series'> # 24 NY 64 # ====== # Bob # <class 'pandas.core.series.Series'> # 42 CA 92 # ====== 

๐ข๐ฅ๐ž๐ฌ๐ญ๐ข๐ž๐ง๐ญ ()

La mรฉthode ๐ขโ€Œ๐ญโ€Œ๐žโ€Œ๐ซโ€Œ๐ญโ€Œ๐ฎโ€Œ๐ฉโ€Œ๐ฅโ€Œ๐žโ€Œ๐ฌโ€Œ() parcourt les lignes d’un D๐šโ€Œ๐ญโ€Œ๐šโ€ŒF๐ซโ€Œ๐šโ€Œ๐ฆโ€Œ๐žโ€Œ , renvoyant chacune sous la forme d’ un ๐งโ€Œ๐šโ€Œ๐ฆโ€Œ๐žโ€Œ๐โ€Œ๐ญโ€Œ๐ฎโ€Œ๐ฉโ€Œ๐ฅโ€Œ๐žโ€Œ .

Par dรฉfaut, il renvoie une chaรฎne nommรฉe P๐šโ€Œ๐งโ€Œ๐โ€Œ๐šโ€Œ๐ฌโ€Œ , dont le premier รฉlรฉment reprรฉsente l’index (nom de la ligne). Vous pouvez ร  chaque valeur avec [] et . .

for row in df.itertuples(): print(type(row)) print(row) print(row[0], row[1], row[2], row[3]) print(row.Index, row.age, row.state, row.point) print('======') # <class 'pandas.core.frame.Pandas'> # Pandas(Index='Alice', age=24, state='NY', point=64) # Alice 24 NY 64 # Alice 24 NY 64 # ====== # <class 'pandas.core.frame.Pandas'> # Pandas(Index='Bob', age=42, state='CA', point=92) # Bob 42 CA 92 # Bob 42 CA 92 # ====== 

La dรฉfinition de l’argument ๐ขโ€Œ๐งโ€Œ๐โ€Œ๐žโ€Œ๐ฑโ€Œ sur F๐šโ€Œ๐ฅโ€Œ๐ฌโ€Œ๐žโ€Œ exclut l’index de ๐งโ€Œ๐šโ€Œ๐ฆโ€Œ๐žโ€Œ๐โ€Œ๐ญโ€Œ๐ฎโ€Œ๐ฉโ€Œ๐ฅโ€Œ๐žโ€Œ . Vous pouvez รฉgalement prรฉciser le nom du ๐งโ€Œ๐šโ€Œ๐ฆโ€Œ๐žโ€Œ๐โ€Œ๐ญโ€Œ๐ฎโ€Œ๐ฉโ€Œ๐ฅโ€Œ๐žโ€Œ avec l’argument ๐งโ€Œ๐šโ€Œ๐ฆโ€Œ๐žโ€Œ .

for row in df.itertuples(index=False, name='Person'): print(type(row)) print(row) print(row[0], row[1], row[2]) print(row.age, row.state, row.point) print('======') # <class 'pandas.core.frame.Person'> # Person(age=24, state='NY', point=64) # 24 NY 64 # 24 NY 64 # ====== # <class 'pandas.core.frame.Person'> # Person(age=42, state='CA', point=92) # 42 CA 92 # 42 CA 92 # ====== 

La dรฉfinition de l’argument ๐งโ€Œ๐šโ€Œ๐ฆโ€Œ๐žโ€Œ sur N๐จโ€Œ๐งโ€Œ๐žโ€Œ renvoie une valeur normale ๐ญโ€Œ๐ฎโ€Œ๐ฉโ€Œ๐ฅโ€Œ๐žโ€Œ .

for row in df.itertuples(name=None): print(type(row)) print(row) print(row[0], row[1], row[2], row[3]) print('======') # <class 'tuple'> # ('Alice', 24, 'NY', 64) # Alice 24 NY 64 # ====== # <class 'tuple'> # ('Bob', 42, 'CA', 92) # Bob 42 CA 92 # ====== 

Itรฉrer sur une colonne spรฉcifique (= S๐žโ€Œ๐ซโ€Œ๐ขโ€Œ๐žโ€Œ๐ฌโ€Œ ) d’un D๐šโ€Œ๐ญโ€Œ๐šโ€ŒF๐ซโ€Œ๐šโ€Œ๐ฆโ€Œ๐žโ€Œ

Bien que les mรฉthodes ๐ขโ€Œ๐ญโ€Œ๐žโ€Œ๐ซโ€Œ๐ซโ€Œ๐จโ€Œ๐ฐโ€Œ๐ฌโ€Œ() et ๐ขโ€Œ๐ญโ€Œ๐žโ€Œ๐ซโ€Œ๐ญโ€Œ๐ฎโ€Œ๐ฉโ€Œ๐ฅโ€Œ๐žโ€Œ๐ฌโ€Œ() gรฉnรจrent toutes les valeurs de chaque ligne, si vous n’avez besoin que des valeurs d’une colonne spรฉcifique, vous pouvez effectuer une itรฉration sur celle-ci.

Une colonne dans un D๐šโ€Œ๐ญโ€Œ๐šโ€ŒF๐ซโ€Œ๐šโ€Œ๐ฆโ€Œ๐žโ€Œ est un S๐žโ€Œ๐ซโ€Œ๐ขโ€Œ๐žโ€Œ๐ฌโ€Œ .

print(df['age']) # Alice 24 # Bob 42 # Name: age, dtype: int64 print(type(df['age'])) # <class 'pandas.core.series.Series'> 

ร‰tant donnรฉ que l’itรฉration sur une colonne S gรฉnรจre ses valeurs, vous pouvez rรฉcupรฉrer sรฉquentiellement les valeurs de la colonne D๐šโ€Œ๐ญโ€Œ๐šโ€ŒF๐ซโ€Œ๐šโ€Œ๐ฆโ€Œ๐žโ€Œ en utilisant une boucle ๐Ÿโ€Œ๐จโ€Œ๐ซโ€Œ .

for age in df['age']: print(age) # 24 # 42 

La fonction intรฉgrรฉe ๐ณโ€Œ๐ขโ€Œ๐ฉโ€Œ() peut รชtre utilisรฉe pour rรฉcupรฉrer des valeurs de plusieurs colonnes ensemble.

for age, point in zip(df['age'], df['point']): print(age, point) # 24 64 # 42 92 

Pour rรฉcupรฉrer les noms de lignes, utilisez l’attribut ๐ขโ€Œ๐งโ€Œ๐โ€Œ๐žโ€Œ๐ฑโ€Œ . Comme dans l’exemple ci-dessus, vous pouvez les rรฉcupรฉrer avec d’autres colonnes ร  l’aide de ๐ณโ€Œ๐ขโ€Œ๐ฉโ€Œ() .

print(df.index) # Index(['Alice', 'Bob'], dtype='object') print(type(df.index)) # <class 'pandas.core.indexes.base.Index'> for index in df.index: print(index) # Alice # Bob for index, state in zip(df.index, df['state']): print(index, state) # Alice NY # Bob CA 

Mettre ร  jour les valeurs dans une boucle ๐Ÿโ€Œ๐จโ€Œ๐ซโ€Œ

Le S๐žโ€Œ๐ซโ€Œ๐ขโ€Œ๐žโ€Œ๐ฌโ€Œ renvoyรฉ par ๐ขโ€Œ๐ญโ€Œ๐žโ€Œ๐ซโ€Œ๐ซโ€Œ๐จโ€Œ๐ฐโ€Œ๐ฌโ€Œ() peut รชtre une copie, pas une vue, donc le modifier peut ne pas mettre ร  jour les donnรฉes d’origine.

print(df) # age state point # Alice 24 NY 64 # Bob 42 CA 92 for index, row in df.iterrows(): row['point'] += row['age'] print(df) # age state point # Alice 24 NY 64 # Bob 42 CA 92 

Vous pouvez mettre ร  jour les valeurs en sรฉlectionnant un รฉlรฉment du D๐šโ€Œ๐ญโ€Œ๐šโ€ŒF๐ซโ€Œ๐šโ€Œ๐ฆโ€Œ๐žโ€Œ d’origine avec ๐šโ€Œ๐ญโ€Œ[] .

for index, row in df.iterrows(): df.at[index, 'point'] += row['age'] print(df) # age state point # Alice 24 NY 88 # Bob 42 CA 134 

Bien que l’exemple prรฉcรฉdent montre l’utilisation de ๐šโ€Œ๐ญโ€Œ[] pour mettre ร  jour des valeurs, il est important de noter que dans de nombreuses situations, une boucle ๐Ÿโ€Œ๐จโ€Œ๐ซโ€Œ est inutile pour de telles mises ร  jour. Souvent, les mรฉthodes alternatives sont non seulement plus simples mais aussi plus efficaces. La section suivante prรฉsente des exemples spรฉcifiques de ces alternatives.

Traiter un D๐šโ€Œ๐ญโ€Œ๐šโ€ŒF๐ซโ€Œ๐šโ€Œ๐ฆโ€Œ๐žโ€Œ sans boucle ๐Ÿโ€Œ๐จโ€Œ๐ซโ€Œ

L’opรฉration dรฉmontrรฉe dans la section prรฉcรฉdente avec une boucle ๐Ÿโ€Œ๐จโ€Œ๐ซโ€Œ peut รฉgalement รชtre rรฉalisรฉe sans boucle ๐Ÿโ€Œ๐จโ€Œ๐ซโ€Œ comme suit.

df = pd.DataFrame({'age': [24, 42], 'state': ['NY', 'CA'], 'point': [64, 92]}, index=['Alice', 'Bob']) print(df) # age state point # Alice 24 NY 64 # Bob 42 CA 92 df['point'] += df['age'] print(df) # age state point # Alice 24 NY 88 # Bob 42 CA 134 

Il est รฉgalement possible de traiter les colonnes existantes et de les ajouter en tant que nouvelles colonnes.

df['new'] = df['point'] + df['age'] * 2 + 1000 print(df) # age state point new # Alice 24 NY 88 1136 # Bob 42 CA 134 1218 

En plus des opรฉrations arithmรฉtiques utilisant des opรฉrateurs comme + et * , vous pouvez appliquer des fonctions NumPy ร  chaque รฉlรฉment d’une colonne.

import numpy as np df['age_sqrt'] = np.sqrt(df['age']) print(df) # age state point new age_sqrt # Alice 24 NY 88 1136 4.898979 # Bob 42 CA 134 1218 6.480741 

Pour le traitement des chaรฎnes, pandas propose des mรฉthodes spรฉcifiques pour gรฉrer directement les colonnes ( S๐žโ€Œ๐ซโ€Œ๐ขโ€Œ๐žโ€Œ๐ฌโ€Œ ).

df['state_0'] = df['state'].str.lower().str[0] print(df) # age state point new age_sqrt state_0 # Alice 24 NY 88 1136 4.898979 n # Bob 42 CA 134 1218 6.480741 c 

De plus, vous pouvez appliquer n’importe quelle fonction ร  chaque รฉlรฉment ou ร  chaque ligne/colonne en utilisant les mรฉthodes ๐ฆโ€Œ๐šโ€Œ๐ฉโ€Œ() et ๐šโ€Œ๐ฉโ€Œ๐ฉโ€Œ๐ฅโ€Œ๐ฒโ€Œ() .

df['point_hex'] = df['point'].map(hex) print(df) # age state point new age_sqrt state_0 point_hex # Alice 24 NY 88 1136 4.898979 n 0x58 # Bob 42 CA 134 1218 6.480741 c 0x86 

Comparaison de la vitesse de traitement

Cette section compare les vitesses de traitement des mรฉthodes telles que ๐ขโ€Œ๐ญโ€Œ๐žโ€Œ๐ซโ€Œ๐ซโ€Œ๐จโ€Œ๐ฐโ€Œ๐ฌโ€Œ() , ๐ขโ€Œ๐ญโ€Œ๐žโ€Œ๐ซโ€Œ๐ญโ€Œ๐ฎโ€Œ๐ฉโ€Œ๐ฅโ€Œ๐žโ€Œ๐ฌโ€Œ() et les boucles ๐Ÿโ€Œ๐จโ€Œ๐ซโ€Œ spรฉcifiques aux colonnes .

Considรฉrez le D๐šโ€Œ๐ญโ€Œ๐šโ€ŒF๐ซโ€Œ๐šโ€Œ๐ฆโ€Œ๐žโ€Œ suivant avec 100 lignes et 10 colonnes.

import pandas as pd import numpy as np df = pd.DataFrame(np.arange(1000).reshape(100, 10)) print(df.shape) # (100, 10) print(df.head(3)) # 0 1 2 3 4 5 6 7 8 9 # 0 0 1 2 3 4 5 6 7 8 9 # 1 10 11 12 13 14 15 16 17 18 19 # 2 20 21 22 23 24 25 26 27 28 29 print(df.tail(3)) # 0 1 2 3 4 5 6 7 8 9 # 97 970 971 972 973 974 975 976 977 978 979 # 98 980 981 982 983 984 985 986 987 988 989 # 99 990 991 992 993 994 995 996 997 998 999 

Le code suivant a รฉtรฉ mesurรฉ ร  l’aide de la commande magique %%๐ญโ€Œ๐ขโ€Œ๐ฆโ€Œ๐žโ€Œ๐ขโ€Œ๐ญโ€Œ dans Jupyter Notebook. Notez qu’il n’est pas mesurรฉ s’il est exรฉcutรฉ en tant que script Python.

%%timeit for i, row in df.iterrows(): pass # 735 ยตs ยฑ 20.5 ยตs per loop (mean ยฑ std. dev. of 7 runs, 1,000 loops each) %%timeit for t in df.itertuples(): pass # 202 ยตs ยฑ 1.74 ยตs per loop (mean ยฑ std. dev. of 7 runs, 1,000 loops each) %%timeit for t in df.itertuples(name=None): pass # 148 ยตs ยฑ 780 ns per loop (mean ยฑ std. dev. of 7 runs, 10,000 loops each) %%timeit for i in df[0]: pass # 4.27 ยตs ยฑ 30.3 ns per loop (mean ยฑ std. dev. of 7 runs, 100,000 loops each) %%timeit for i, j, k in zip(df[0], df[4], df[9]): pass # 13.5 ยตs ยฑ 53.4 ns per loop (mean ยฑ std. dev. of 7 runs, 100,000 loops each) %%timeit for t in zip(df[0], df[1], df[2], df[3], df[4], df[5], df[6], df[7], df[8], df[9]): pass # 41.3 ยตs ยฑ 281 ns per loop (mean ยฑ std. dev. of 7 runs, 10,000 loops each) 

๐ขโ€Œ๐ญโ€Œ๐žโ€Œ๐ซโ€Œ๐ซโ€Œ๐จโ€Œ๐ฐโ€Œ๐ฌโ€Œ() a tendance ร  รชtre assez lente, car elle convertit chaque ligne en un S๐žโ€Œ๐ซโ€Œ๐ขโ€Œ๐žโ€Œ๐ฌโ€Œ , alors que ๐ขโ€Œ๐ญโ€Œ๐žโ€Œ๐ซโ€Œ๐ญโ€Œ๐ฎโ€Œ๐ฉโ€Œ๐ฅโ€Œ๐žโ€Œ๐ฌโ€Œ() est plus rapide. Cependant, les colonnes pour l’itรฉration sont dรฉfinies comme la mรฉthode la plus rapide. Dans notre environnement d’exemple, l’itรฉration spรฉcifique ร  la colonne s’est avรฉrรฉe plus rapide que ๐ขโ€Œ๐ญโ€Œ๐žโ€Œ๐ซโ€Œ๐ญโ€Œ๐ฎโ€Œ๐ฉโ€Œ๐ฅโ€Œ๐žโ€Œ๐ฌโ€Œ() , mรชme lors de l’extraction de toutes les colonnes.

Bien que la diffรฉrence de vitesse ne soit pas significative pour les ensembles de donnรฉes contenant environ 100 lignes, ๐ขโ€Œ๐ญโ€Œ๐žโ€Œ๐ซโ€Œ๐ซโ€Œ๐จโ€Œ๐ฐโ€Œ๐ฌโ€Œ() ralentit considรฉrablement avec les ensembles de donnรฉes plus volumineux. Dans de tels cas, il est conseillรฉ d’utiliser ๐ขโ€Œ๐ญโ€Œ๐žโ€Œ๐ซโ€Œ๐ญโ€Œ๐ฎโ€Œ๐ฉโ€Œ๐ฅโ€Œ๐žโ€Œ๐ฌโ€Œ() ou une itรฉration spรฉcifique ร  la colonne.

Comme mentionnรฉ prรฉcรฉdemment, l’approche la plus efficace consiste souvent ร  effectuer des opรฉrations sans boucles .