Itération par les colonnes d'un DataFrame Pandas

  1. Utilisez la syntaxe getitem ([]) pour itérez les colonnes dans les DataFrame de Pandas
  2. Utilisez la fonction dataframe.iteritems() pour itérer les colonnes dans le DataFrame de Pandas
  3. Utilisez la fonction enumerate() pour itéréer sur les colonnes Pandas

Les DataFrames peuvent être très grands et peuvent contenir des centaines de lignes et de colonnes. Il est nécessaire d’itérer sur les colonnes d’un DataFrame et d’effectuer des opérations sur les colonnes individuellement comme la régression et bien d’autres encore.

Nous pouvons utiliser la boucle for pour itérer sur les colonnes d’un DataFrame. La syntaxe de base de la boucle for est donnée ci-dessous :

for value in sequence:
    #Body of Loop

Nous pouvons utiliser plusieurs méthodes pour exécuter la boucle for sur une DataFrame, par exemple, la syntaxe getitem (la fonction []), la fonction dataframe.iteritems(), la fonction enumerate() et l’utilisation de l’index d’une DataFrame.

Utilisez la syntaxe getitem ([]) pour itérez les colonnes dans les DataFrame de Pandas

Nous pouvons utiliser des étiquettes de colonnes pour faire passer la boucle for sur la DataFrame en utilisant la syntaxe getitem ([]). Par exemple :

import pandas as pd

df = pd.DataFrame([[10,6,7,8],
                   [1,9,12,14],
                   [5,8,10,6]],
                  columns = ['a','b','c','d'])

print(df)
print("------------------")
for column in df:
    print(df[column].values)

Production :

    a  b   c   d
0  10  6   7   8
1   1  9  12  14
2   5  8  10   6
------------------
[10  1  5]
[6 9 8]
[ 7 12 10]
[ 8 14  6]

La fonction values() est utilisée pour extraire les éléments de l’objet sous forme de liste.

Utilisez la fonction dataframe.iteritems() pour itérer les colonnes dans le DataFrame de Pandas

Pandas fournit la fonction dataframe.iteritems(), qui aide à itérer sur une DataFrame et renvoie le nom de la colonne et son contenu sous forme de série.

import pandas as pd

df = pd.DataFrame([[10,6,7,8],
                   [1,9,12,14],
                   [5,8,10,6]],
                  columns = ['a','b','c','d'])

for (colname,colval) in df.iteritems():
    print(colname, colval.values)

Production :

a [10  1  5]
b [6 9 8]
c [ 7 12 10]
d [ 8 14  6]

Utilisez la fonction enumerate() pour itéréer sur les colonnes Pandas

La fonction enumerate() avec DataFrame renvoie l’index et le libellé de la colonne, ce qui nous permet d’itérer par dessus.

import pandas as pd

df = pd.DataFrame([[10,6,7,8],
                   [1,9,12,14],
                   [5,8,10,6]],
                  columns = ['a','b','c','d'])

for (index, colname) in enumerate(df):
    print(index, df[colname].values)

Production :

0 [10  1  5]
1 [6 9 8]
2 [ 7 12 10]
3 [ 8 14  6]

Nous pouvons utiliser très efficacement n’importe laquelle des méthodes ci-dessus pour itérer sur le DataFrame. Nous pouvons également effectuer des opérations comme des régressions sur des colonnes individuellement. Par exemple, nous pouvons définir la dernière colonne comme variable indépendante et exécuter des régressions MCO avec d’autres colonnes comme variables dépendantes, comme le montre l’exemple ci-dessous :

import pandas as pd
import statsmodels.api as sm
import numpy as np

df = pd.DataFrame([[10,6,7,8],
                   [1,9,12,14],
                   [5,8,10,6]],
                  columns = ['a','b','c','d'])

for column in df:
    Y = df['d']
    X = df[column]
    X = sm.add_constant(X)
    model = sm.OLS(X,Y)
    results = model.fit()
    print(results.params)

Production :

          0         1
d  0.094595  0.418919
          0     1
d  0.094595  0.75
          0         1
d  0.094595  0.959459
          0    1
d  0.094595  1.0

Article connexe - Pandas DataFrame

  • Appliquer une fonction à plusieurs colonnes dans Pandas DataFrame
  • Compter des valeurs uniques par groupe (s) dans Pandas