Iterar pelas colunas de um DataFrame Pandas
-
Utilizar a sintaxe
getitem
([]
) para Iterate Over Columns in Pandas DataFrame -
Use
dataframe.iteritems()
para iterar sobre colunas no Dataframe Pandas -
Utilize
enumerate()
para Iterar sobre as Colunas Pandas
Os DataFrames podem ser muito grandes e podem conter centenas de filas e colunas. É necessário iterar sobre colunas de um DataFrame e realizar operações em colunas individualmente como regressão e muitas mais.
Podemos utilizar o for
loop para iterar sobre colunas de uma DataFrame. A sintaxe básica do laço for
é dada abaixo:
for value in sequence:
# Body of Loop
Podemos utilizar vários métodos para executar o laço for
sobre um DataFrame, por exemplo, a sintaxe getitem (o []
), a função dataframe.iteritems()
, a função enumerate()
e utilizando o índice de um DataFrame.
Utilizar a sintaxe getitem
([]
) para Iterate Over Columns in Pandas DataFrame
Podemos utilizar rótulos de coluna para executar o laço for
sobre a DataFrame utilizando a sintaxe getitem
([]
). Por exemplo:
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)
Resultado:
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]
A função values()
é utilizada para extrair os elementos do objecto como uma lista.
Use dataframe.iteritems()
para iterar sobre colunas no Dataframe Pandas
Pandas fornece a função dataframe.iteritems()
, que ajuda a iterar sobre um DataFrame e devolve o nome da coluna e o seu conteúdo como 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)
Resultado:
a [10 1 5]
b [6 9 8]
c [ 7 12 10]
d [ 8 14 6]
Utilize enumerate()
para Iterar sobre as Colunas Pandas
O enumerate()
com DataFrame devolve o índice e o rótulo de coluna, o que nos permite iterar sobre ele.
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)
Resultado:
0 [10 1 5]
1 [6 9 8]
2 [ 7 12 10]
3 [ 8 14 6]
Podemos utilizar de forma muito eficiente qualquer um dos métodos acima referidos para iterar sobre o DataFrame. Também podemos executar operações como regressões sobre colunas individualmente. Por exemplo, podemos definir a última coluna como a variável independente e executar regressões OLS com outras colunas como variáveis dependentes, como se mostra no exemplo abaixo:
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)
Resultado:
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.
LinkedInArtigo relacionado - Pandas DataFrame
- Como obter os cabeçalhos da coluna Pandas DataFrame como uma lista
- Como eliminar a coluna Pandas DataFrame
- Como Converter a Coluna DataFrame para DataTempo em Pandas
- Como Converter um Flutuador em um Inteiro em Pandas DataFrame
- Como Classificar Pandas DataFrame pelos Valores de uma Coluna
- Como Obter o Agregado de Pandas Group-By e Sum