Scorri le colonne di un DataFrame Pandas

Manav Narula 30 gennaio 2023
  1. Usa la sintassi getitem ([]) per ripetere le colonne in Pandas DataFrame
  2. Usa dataframe.iteritems() per scorrere le colonne in Pandas Dataframe
  3. Usa enumerate() per ripetere i pandas su colonne
Scorri le colonne di un DataFrame Pandas

I DataFrame possono essere molto grandi e possono contenere centinaia di righe e colonne. È necessario iterare sulle colonne di un DataFrame ed eseguire operazioni sulle colonne individualmente come la regressione e molte altre.

Possiamo usare il cicli for per iterare sulle colonne di un DataFrame. La sintassi di base del cicli for è data di seguito:

for value in sequence:
    # Body of Loop

Possiamo usare più metodi per eseguire il cicli for su un DataFrame, ad esempio, la sintassi getitem (la []), la funzione dataframe.iteritems(), la funzione enumerate() e l’uso di index di un DataFrame.

Usa la sintassi getitem ([]) per ripetere le colonne in Pandas DataFrame

Possiamo usare le etichette delle colonne per eseguire il cicli for sul DataFrame usando la sintassi getitem ([]). Per esempio:

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)

Produzione:

    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 funzione values() viene utilizzata per estrarre gli elementi dell’oggetto come una lista.

Usa dataframe.iteritems() per scorrere le colonne in Pandas Dataframe

Pandas fornisce la funzione dataframe.iteritems(), che aiuta a iterare su un DataFrame e restituisce il nome della colonna e il suo contenuto come 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)

Produzione:

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

Usa enumerate() per ripetere i pandas su colonne

enumerate() con DataFrame restituisce l’indice e l’etichetta della colonna, che ci permette di iterare su di esso.

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)

Produzione:

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

Possiamo utilizzare in modo molto efficiente uno dei metodi sopra riportati per iterare su DataFrame. Possiamo anche eseguire operazioni come regressioni su colonne individualmente. Ad esempio, possiamo impostare l’ultima colonna come variabile indipendente ed eseguire regressioni OLS con altre colonne come variabili dipendenti, come mostrato nell’esempio seguente:

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)

Produzione:

          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
Autore: Manav Narula
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

Articolo correlato - Pandas DataFrame