Iterar a través de las columnas de un Pandas DataFrame
-
Usar la sintaxis
getitem
([]
) para Iterar sobre las columnas en el DataFrame de Pandas -
Use
dataframe.iteritems()
para Iterar sobre las columnas en el DataFrame de Pandas -
Usa
enumerate()
para iterar sobre las columnas de Pandas
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 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.
LinkedInArtículo relacionado - Pandas DataFrame
- Cómo obtener las cabeceras de columna de Pandas DataFrame como una lista
- Cómo borrar la columna de Pandas DataFrame
- Cómo convertir la columna del DataFrame a Datetime en Pandas
- Cómo convertir un float en un entero en Pandas DataFrame
- Cómo clasificar Pandas DataFrame por los valores de una columna
- Cómo obtener el agregado de Pandas grupo por y suma