Iterar a través de las columnas de un Pandas DataFrame

Manav Narula 30 enero 2023
  1. Usar la sintaxis getitem ([]) para Iterar sobre las columnas en el DataFrame de Pandas
  2. Use dataframe.iteritems() para Iterar sobre las columnas en el DataFrame de Pandas
  3. Usa enumerate() para iterar sobre las columnas de Pandas
Iterar a través de las columnas de un Pandas DataFrame

Los DataFrames pueden ser muy grandes y pueden contener cientos de filas y columnas. Es necesario iterar sobre las columnas de un DataFrame y realizar operaciones sobre las columnas individualmente como la regresión y muchas más.

Podemos usar el bucle for para iterar sobre las columnas de un DataFrame. La sintaxis básica del bucle for se da a continuación:

for value in sequence:
    # Body of Loop

Podemos usar múltiples métodos para ejecutar el bucle for sobre un DataFrame, por ejemplo, la sintaxis de los getem (el []), la función dataframe.iteritems(), la función enumerate() y usar el índice de un DataFrame.

Usar la sintaxis getitem ([]) para Iterar sobre las columnas en el DataFrame de Pandas

Podemos usar etiquetas de columna para ejecutar el bucle for sobre el DataFrame usando la sintaxis getitem ([]). Por ejemplo:

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)

Producción :

    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 función values() se utiliza para extraer los elementos del objeto como una lista.

Use dataframe.iteritems() para Iterar sobre las columnas en el DataFrame de Pandas

Pandas proporciona la función dataframe.iteritems(), que ayuda a iterar sobre un DataFrame y devuelve el nombre de la columna y su contenido en forma de serie.

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)

Producción :

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

Usa enumerate() para iterar sobre las columnas de Pandas

El enumerate() con DataFrame devuelve el índice y la etiqueta de la columna, lo que nos permite iterar sobre ella.

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)

Producción :

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

Podemos usar muy eficientemente cualquiera de los métodos anteriores para iterar sobre el DataFrame. También podemos ejecutar operaciones como las regresiones sobre las columnas individualmente. Por ejemplo, podemos establecer la última columna como la variable independiente y ejecutar regresiones OLS con otras columnas como variables dependientes, como se muestra en el siguiente ejemplo:

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)

Producción :

          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
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Artículo relacionado - Pandas DataFrame